gozoro/yii2-rbac-console

控制台中的RBAC配置和管理工具。

安装: 7

依赖: 1

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

v1.0.2 2024-04-03 15:09 UTC

This package is auto-updated.

Last update: 2024-09-03 16:24:14 UTC


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方案。