gozoro / yii2-rbac-console
控制台中的RBAC配置和管理工具。
v1.0.2
2024-04-03 15:09 UTC
Requires
- php: >=5.5.9
- yiisoft/yii2: ~2.0.0
README
控制台中的RBAC配置和管理工具。
安装
composer require gozoro/yii2-rbac-console
准备
创建控制台控制器 commands\RbacController.php
。
namespace app\commands; class RbacController extends \gozoro\yii2\rbac\console\RbacController; { public function findIdentityByUsername($username) { //TODO:: Return an instance of the class with interface \yii\web\Identity // example: //return UserIdentity::find()->where(['username'=>$username])->one(); } public function findIdentityById($userId) { //TODO:: Return an instance of the class with interface \yii\web\Identity // example: //return UserIdentity::find()->where(['id'=>$userId])->one(); } }
控制器动作
-
./yii rbac/init
执行初始RBAC配置(记住用户角色,删除所有数据,从配置中恢复数据,恢复用户角色)。您可以在添加新角色或删除不需要的角色后使用它。 -
rbac/show-config
显示配置(默认配置:@app/config/rbac.php
)。 -
rbac/roles
显示AuthManager中的角色列表。 -
rbac/permissions
显示AuthManager中的权限列表。 -
rbac/rules
显示AuthManager中的规则列表。 -
rbac/show
(默认)显示角色和用户列表。 -
rbac/show-user
显示用户的角色和权限。 -
rbac/assign
将角色(或权限)分配给用户。 -
rbac/unassign
从用户撤销角色或权限。 -
rbac/unassign-all
从用户撤销所有角色和权限。
配置
创建配置 @app/config/rbac.php
。
示例
return [ // Permission list 'permissions' =>[ 'read' => 'permissions for read something', // permission_name => description 'write' => 'permissions for write something', // permission_name => description 'permission_master' => $permision, // permission_name => permission object 'permission_slave' => [ // permission_name => permission as array 'name' => ..., 'description' => ..., 'data' => ..., ], ], // Role list 'roles' => [ 'role_admin' => 'Administrator role', // role_name => description 'role_manager' => 'Manager role', // role_name => description 'role_viewer' => $role, // role_name => role_object 'role_something' => [ // role_name => role as array 'name' => ..., 'description' => ..., 'data' => ..., ], ], // Rule list 'rules' => [ \WriteRule:class => ['write'], // rule for permission "write" $rule => ['write', 'read'], // rule object for permissions "write" and "read" ], // Mapping roles to permissions 'access' => [ 'permission_master' => ['permission_slave'], 'role_admin' => ['read', 'write'], // array of permissions 'role_manager' => ['read', 'permission_master'], ], ];
使用命令 ./yii rbac/init
初始化或重新初始化RBAC方案。