luilliarcec / laravel-user-commands
Laravel User Commands 是一个提供用户操作所需命令的包。
Requires
- php: ^7.2|^8.0
- laravel/framework: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0
- phpunit/phpunit: ^8.0
- spatie/laravel-permission: ^3.18
README
如果你像我一样,考虑过在应用程序内部操作用户命令,这个包将帮助你。
安装
您可以通过 composer 安装此包
composer require luilliarcec/laravel-user-commands
现在通过运行以下命令将配置文件发布到您的应用程序配置目录
php artisan vendor:publish --provider="Luilliarcec\UserCommands\UserCommandsServiceProvider"
这就完成了。😄
用法
该包有 4 个基本命令
创建用户
php artisan user:create
字段
在执行命令时将使用您模型中定义的 fillable 属性中的所有字段。如果您想添加更多字段,您可以从配置文件中这样做(您的文件优先于您的模型,因此如果您的配置文件中定义了字段,则将忽略 fillable 属性中的字段)
规则
无论您在模型中还是在配置文件中定义了字段,filled
规则将动态应用于这些字段。如果您想添加自定义规则,您可以从配置文件的 rules 键中进行操作,这些规则将合并,那些没有指定自定义规则的字段将默认使用 filled
规则。
最后,您可以自由扩展命令并按您的喜好进行配置。
php artisan user:create -a username:larcec -a "other_field:Value of field"
或
php artisan user:create --attributes=username:larcec --attributes="other_field:Value of field"
如果您想标记用户的电子邮件为已验证,可以通过传递 --verified
参数。例如:
php artisan user:create --verified
如果您的模型使用角色和权限,您必须在配置文件中配置角色和权限的模型以及关系的名称。
然后您可以将权限或角色作为参数传递。
php artisan user:create -p "user-create" -p "user-edit"
应注意,roles
和 permissions
必须在您的数据库中已经存在,并且将通过 name
字段进行搜索
一旦创建用户,如果它实现了 MustVerifyEmail
接口并且存在 verification.verify
路由名称,将发送已创建的通知。
如果您想应用自己的逻辑或仅保存所有用户的默认数据,您可以通过扩展命令并应用必要的逻辑,或者复制 prepareForSave
方法并添加必要的数据。例如:
<?php namespace App\Commands; use Luilliarcec\UserCommands\Commands\CreateNewUserCommand as CreateNewUserCommandBase; class CreateNewUserCommand extends CreateNewUserCommandBase { protected function prepareForSave(): array { return $this->merge([ 'password' => Hash::make($this->data['password']), 'username' => Username::make($this->data['name']), ]); } }
$this->data
将包含请求的用户数据,如果您想通过 --attribute
标志访问您输入的数据,您可以通过调用 attributes
函数来实现,该函数将返回一个 key => value
数组,包含您的数据。
重置密码用户
重置密码用户命令需要值参数。它将通过 email
进行搜索,如果找不到,则通过 id
进行搜索
php artisan user:reset-password luis@email.com
但是,如果您想搜索特定字段,可以在值后面传递它
php artisan user:reset-password larcec -f username
或
php artisan user:reset-password larcec --field username
执行命令后,它将要求您输入新密码并确认它
删除用户
与 reset password user
命令一样,通过电子邮件或 id 或指定特定字段来搜索用户。
php artisan user:delete luis@email.com
或
php artisan user:delete larcec --field username
如果您的模型使用逻辑删除,这将是默认执行的,但如果您想完全删除,可以传递 --force 参数
php artisan user:delete larcec --field username --force
恢复用户
与 reset password user
命令一样,通过电子邮件或 id 或指定特定字段来搜索用户。
php artisan user:restore luis@email.com
或
php artisan user:restore larcec --field username
请注意,此命令仅在您的模型使用 SoftDelete 特性时才会运行
具有角色和权限的用户
如果您想为您的用户添加角色和权限,不要忘记在配置文件中配置关系名称,除了角色和权限模型。
授予用户权限就像这样简单
php artisan user:create -p "user-create" -p "user-edit"
或
php artisan user:create --permissions="user-create" --permissions="user-edit"
如果您想授予所有权限,可以这样做
php artisan user:create -p *
注意,您必须发送单个权限标志,否则它将不起作用。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全
如果您发现任何安全相关的问题,请通过电子邮件luilliarcec@gmail.com联系,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。