echods/roles

应用的角色和权限

1.1.4 2023-07-06 14:15 UTC

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;

    //...
}

用法

检查角色

您可以从配置中的角色列表中检查用户的角色。例如,如果您有角色 admineditoremployee,则可以执行以下操作。返回布尔值。

$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');