Yii2-rbac

下面介绍一个 yii2.0 的 Rbac 权限设置,闲话少说,直接上代码,php

 
一、首先咱们要在组件里面配置一下 Rbac ,以下所示(common/config/main-local.php或者main.php)。
 
 'authManager' => [
 'class' => 'yii\rbac\DbManager',
 'itemTable' => 'auth_item',
 'assignmentTable' => 'auth_assignment',
 'itemChildTable' => 'auth_item_child',
  ],
 
固然,在配置里面也能够设置 默认角色,只是我没写。Rbac 支持两种类,PhpManager 和 DbManager ,这里我使用DbManager 。
 
yii migrate --migrationPath=@yii/rbac/migrations/ 运行此命令生成权限数据表
 
二、配置完毕,下面咱们尝试着建立一个 许可 Permiassion,代码以下
  
public function createPermission($item)
  {
    $auth = Yii::$app->authManager;
 
    $createPost = $auth->createPermission($item);
    $createPost->description = '建立了 ' . $item . ' 许可';
    $auth->add($createPost);
  }

三、好的,许可咱们就建立完成了,下面咱们建立一个 角色吧 roleshtml

public function createRole($item)
  {
    $auth = Yii::$app->authManager;
 
    $role = $auth->createRole($item);
    $role->description = '建立了 ' . $item . ' 角色';
    $auth->add($role);
  }
 
四、好的,就是这么简单,不要激动,下面更简单,给角色分配许可,上代码
 
static public function createEmpowerment($items)
  {
    $auth = Yii::$app->authManager;
 
    $parent = $auth->createRole($items['name']);
    $child = $auth->createPermission($items['description']);
 
    $auth->addChild($parent, $child);
  }

五、好的,分配许可也建立完成了,我操,太尼玛简单了,继续上代码,给角色分配用户 web

static public function assign($item)
  {
    $auth = Yii::$app->authManager;
    $reader = $auth->createRole($item['name']);
    $auth->assign($reader, $item['description']);
  }

六、好的好的,就是这么简单,我本身都他妈不敢相信啊,你相信吗???最后一步,验证用户是否有权限sql

 public function beforeAction($action)
  {
    $action = Yii::$app->controller->action->id;
    if(\Yii::$app->user->can($action)){
      return true;
    }else{
      throw new \yii\web\UnauthorizedHttpException('对不起,您如今还没获此操做的权限');
    }
  }
 
数据库sql文件地址  /vendor/yiisoft/yii2/rbac
 
Yii2-admin RBAC权限管理的实现

http://www.open-open.com/lib/view/open1434638805348.html数据库

来自:http://blog.sina.com.cn/s/blog_88a65c1b0101izml.html
相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息