RBAC权限的分类 [ 2.0 版本 ]
第一次发文,解析的不好,莫怪
权限分类,主要是采取了yii2的权限能无限级继承的关系来实现的
最关键的其实就是使用addchild()方法来继承,从而实现分类。使用getChildren()方法来获取分类下的权限
角色分类也是如此。
//选择分类,以及创建分类下的权限,下面的$this->wxcode是站点名称,可不管
public function actionCreate()
{
$model = new PermissionForm();
$permission = new \yii\rbac\Permission();
if ($model->load(Yii::$app->request->post())) {
$pName = $this->wxcode.'/'.$model->name;
$hasp = $this->manager->getPermission($pName);//判断是否已经存在该权限
if($hasp){
$message = '该权限类型已经存在';
return $this->showInfo($message);
}
$permission->name = $pName;
$permission->type = $model->type;
$permission->data = $model->category;
$permission->description = $model->description;
$this->manager->add($permission);
$spotSystem = $this->manager->getRole($this->rolePrefix.'system');
if($spotSystem){
$this->manager->addChild($spotSystem, $permission);//自动将新建权限赋予给站点管理员角色
}
if($model->category){
$category = new \yii\rbac\Permission();
$category->name = $model->category;
$this->manager->addChild($category, $permission);//将创建的权限关联到所选择的分类上
}
return $this->redirect(['index','currentCategory'=>$model->category]);
}
$categories = $this->manager->getChildren($this->rootPermission);//获取站点根分类下的所有的分类
return $this->render('create', [
'model' => $model,
'categories' => $categories
]);
}
张震宇 深圳
注册时间:2015-07-31
最后登录:2018-07-16
在线时长:59小时58分
最后登录:2018-07-16
在线时长:59小时58分
- 粉丝2
- 金钱270
- 威望10
- 积分960
共 1 条评论
看看。。正在学习