marqu3s / yii2-rbac-plus
基于数据库的角色基于访问控制管理器,用于yii2
v0.0.3
2024-06-12 20:44 UTC
Requires
- yiisoft/yii2: >=2.0.40
This package is auto-updated.
Last update: 2024-09-12 21:16:31 UTC
README
基于数据库的角色基于访问控制管理器,用于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', ] ],
- beforeCreateController 在Rbac Plus模块的所有控制器创建之前调用的可调用对象。默认值为null。当您想要限制对Rbac Plus模块的访问时,需要配置此选项。
示例
'beforeCreateController' => function($route) { /** *@var string $route The route consisting of module, controller and action IDs. */ }
- beforeAction在Rbac Plus模块中所有控制器中的动作之前调用的可调用对象。
默认值为null。当您想要限制对Rbac Plus模块中某些控制器中任何动作的访问时,需要配置此选项。
示例
'beforeAction' => function($action) { /** *@var yii\base\Action $action the action to be executed. */ }