安装这个扩展的首选方法是通过 composer。
可以运行
composer require --prefer-dist yiichina/yii2-rbac-module "*"
也可以添加
"yiichina/yii2-rbac-module": "*"
到你的 composer.json
文件的包含部分。
'modules' => [
'rbac' => [
'class' => 'yiichina\modules\rbac\Module',
],
],
'authManager' => [
'class' => 'yii\rbac\DbManager',
'defaultRoles' => ['user'],
],
php yii migrate/up --migrationPath=@yii/rbac/migrations
也可以找到 @yii/rbac/migrations
目录下的数据库脚本去执行。
/index.php?r=rbac/assignment
/index.php?r=rbac/permission
/index.php?r=rbac/role
/index.php?r=rbac/rule
如果配置了 URL 美化,您可以使用如下 URL:
/rbac/assignment
/rbac/permission
/rbac/role
/rbac/rule
在需要权限判断的时候,使用如下方式:
if (Yii::$app->user->can('admin')) {
// 可以执行的语句
}
使用控制器行为:
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['delete'],
'rules' => [
'actions' => ['delete'],
'allow' => true,
'roles' => ['admin'], // 在这里指定可以操作此动作的角色
'verbs' => ['POST'],
],
],
];
}
如果需要针对动作的权限管理,请参考: https://github.com/yii2mod/yii2-rbac
同时包含 DbManager
和 PhpManager
的权限管理:
https://github.com/dektrium/yii2-rbac