marqu3s/yii2-rbac-plus

基于数据库的角色基于访问控制管理器,用于yii2

安装: 13

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 0

分支: 52

开放问题: 0

类型:yii2-extension

v0.0.3 2024-06-12 20:44 UTC

This package is auto-updated.

Last update: 2024-09-12 21:16:31 UTC


README

============= Latest Stable Version License Total Downloads Monthly Downloads Daily Downloads

基于数据库的角色基于访问控制管理器,用于yii2。

功能

  • 角色、权限和规则的CRUD操作
  • 允许为用户分配多个角色
  • 易于集成的美观视图

安装

安装此扩展的首选方法是通过composer

php composer.phar require marqu3s/yii2-rbac-plus

使用方法

1. 在主配置文件中将以下内容添加到模块配置中

'components' => [
    'authManager' => [
        'class' => 'yii\rbac\DbManager',
    ],
],
'modules' => [
    'rbac' =>  [
        'class' => 'marqu3s\rbacplus\Module'
    ]
]

然后,更新数据库模式

php yii migrate/up --migrationPath=@yii/rbac/migrations

好的,完成了。现在可用的路由现在

  • /rbac/rule
  • /rbac/permission
  • /rbac/role
  • /rbac/assignment

2. 模块配置可用

'modules' => [
    'rbac' =>  [
        'class' => 'marqu3s\rbacplus\Module',
        'userModelClassName' => null,
        'userModelIdField' => 'id',
        'userModelLoginField' => 'username',
        'userModelLoginFieldLabel' => null,
        'userModelExtraDataColumls' => null,
        'beforeCreateController' => null,
        'beforeAction' => null
    ]
],
  • userModelClassName: 用户模型类。
    如果未设置或设置为null,RBAC Plus将从Yii::$app->getUser()->identityClass获取
  • userModelIdField: 用户模型id字段。
    默认id字段是'id',如果数据库中用户表的键不是'id',则必须设置此配置
  • userModelLoginField 用户模型登录字段。
    默认登录字段是'username'。如果您使用电子邮件字段或其他字段进行登录,则必须更改此配置
  • userModelLoginFieldLabel 用户模型登录字段标签。
    如果设置为null,标签将从$userModelClass->attributeLabels()[$userModelLoginField]获取
  • userModelExtraDataColumls 您希望在用户分配视图中显示的额外数据列。
    默认情况下,分配数据网格视图仅显示id和登录列数据。如果您想添加created_at列,可以添加
'userModelExtraDataColumls' => [
    [
        'attributes' => 'created_at',
        'format' => 'datetime',
    ]
],
  • beforeCreateControllerRbac Plus模块的所有控制器创建之前调用的可调用对象。默认值为null。当您想要限制对Rbac Plus模块的访问时,需要配置此选项。

示例

'beforeCreateController' => function($route) {
    /**
    *@var string $route The route consisting of module, controller and action IDs.
    */
}
  • beforeActionRbac Plus模块中所有控制器中的动作之前调用的可调用对象。
    默认值为null。当您想要限制对Rbac Plus模块中某些控制器中任何动作的访问时,需要配置此选项。

示例

'beforeAction' => function($action) {
    /**
    *@var yii\base\Action $action the action to be executed.
    */
}