echods / roles
应用的角色和权限
1.1.4
2023-07-06 14:15 UTC
Requires
- php: ^8.0.2
- doctrine/dbal: ^3.6
README
Laravel 6+ 的基于 Laravel 的角色。
安装包
composer require echods/roles
对于 Laravel < 5.8
对于版本低于 5.8 的 Laravel,请使用标签分支 0.9.8。
从 1.0.4 升级到 1.1.0
将使用 handle 替代 name。添加了 name 属性以支持向后兼容,希望这能有所帮助。升级时,不要忘记运行以下命令:
$ php artisan migrate
发布配置文件
$ php artisan vendor:publish --provider="Echods\Roles\RoleServiceProvider" --tag=config
修改配置文件以设置角色
在配置文件中添加您应用所需的角色及其描述。如果您希望使用大整数迁移或注释,也可以进行更改。
'admin' => [
'name' => 'admin',
'description' => 'Admin role for all stuff'
],
'editor' => [
'name' => 'editor',
'description' => 'Editor role for all stuff'
]
],
'migrations' => [
'useBigInteger' => true
]
运行迁移
运行创建角色表和角色用户迁移的迁移。
$ php artisan migrate
运行角色设置
这将使用配置文件中的角色填充数据库。
$ php artisan roles:generate
HasRole 特性
use Echods\Roles\Traits\HasRole;
class User extends Authenticatable
{
use HasRole;
//...
}
用法
检查角色
您可以从配置中的角色列表中检查用户的角色。例如,如果您有角色 admin
、editor
、employee
,则可以执行以下操作。返回布尔值。
$user = User::find(1);
$user->isAdmin();
$user->isEditor();
$user->isEmployee();
或者您可以这样做
$user->hasRole('editor');
检查多个角色
检查用户是否具有多个角色
$user->hasRoles(['admin', 'editor']);
// or
$user->hasRoles(['editor', 'admin']);
附加角色
$user->attachRole('superAdmin');