Yii Rbac权限
来源:互联网 发布:优化游戏的软件 编辑:程序博客网 时间:2024/06/05 05:22
yii2.0框架自带的rbac权限:
一、先是生成Rbac的表、
第一步,
首先我们要在配置文件的组件(component)里面配置一下 Rbac,这里有两种方法, 可以在
'class' => 'yii\rbac\DbManager',进行操作(数据库),也可以在'class' => 'yii\rbac\PhpManager', 下进行操作。
'authManager' => [ 'class' => 'yii\rbac\DbManager', 'itemTable' => 'auth_item', 'assignmentTable' => 'auth_assignment', 'itemChildTable' => 'auth_item_child',],
第二部,打开cmd进入到你的目录下:
输入 yii migrate 生成user表
yii migrate --migrationPath=@yii/rbac/migrations/ 生成rbac的所有表。
二、rbac就是给用户赋角色,给角色加权限。
第一步, 我们自己去注册用户,这里就不过去解释了
第二部,创建角色,创建角色前,我们要去@app下去建立一个rbac的文件夹,如:你在后台backend下面操作的,就在backend下面建立文件夹
public function actionCreaterole(){// 获取authMananger组件对象$auth = \Yii::$app->authManager;// 创建角色$author = $auth->createRole('你要创建的角色名');}
会在rbac文件夹下面自动生成一个items.php的文件,里面就是你要的角色名。
第三部、 为用户赋角色
$auth = \Yii::$app->authManager;$author = $auth->createRole('你的角色名1');$reader = $auth->createRole('你的角色名2');$auth->assign($author, 1);$auth->assign($reader, 2);
这里将角色名1赋给用户ID为1的,角色名2赋给用户id为2的, 这时,会在rbac文件里面生成assignments.php的一个文件,里面就是你的用户Id所对应的角色。type=1是角色,type=2为权限
第四步、创建权限
$auth = Yii::$app->authManager; $createPost = $auth->createPermission($name); $createPost->description = '创建了 ' . $name. ' 权限'; $auth->add($createPost);给角色赋权限:
$auth->addChild($author, $postAdd);$author 是你的角色名。 $auth->addChild($author, $postUpdate);、
这样就你所赋的那个角色就有两个权限了。
第五步、判断用户是否有权限:
public function beforeAction($action) { $user = \Yii::$app->user; //$action->id获取方法名,然后让首字母大写,否则无法运行 $actionName = ucfirst($action->id); if (! $user->can($actionName)) { //如果没有,执行没有权限操作 echo $this->renderContent('没有权限执行该操作');exit; } return true; }
这里用的是can方法进行判断。
就这样,基本的rbac权限就完成了。
阅读全文
0 0
- yii 权限RBAC
- Yii Rbac权限
- Yii框架RBAC权限管理
- Yii基于RBAC的权限控制
- Yii基于RBAC的权限系统
- Yii的Rbac权限管理组件
- yii 基于php的Rbac权限控制
- YII RBAC
- 在yii中使用Filter实现RBAC权限自动判断
- Yii中使用RBAC完全指南 (用户角色权限控制)
- Yii中使用RBAC完全指南 (用户角色权限控制)
- YII框架使用SRBAC实现RBAC权限访问控制
- Yii中使用RBAC完全指南 (用户角色权限控制)
- Yii的RBAC权限控制的使用——SRBAC
- YII2.0框架(五) RBAC基于角色的权限控制源码透析yii\rbac\DbManager
- RBAC权限
- rbac权限
- Yii框架RBAC
- 2017-11-16 A星课程
- 3D 打印切片软件 CuraEngine 介绍
- XDC+,Tier IV数据中心
- char 和 varchar的区别
- 测试标题
- Yii Rbac权限
- jenkins--60--用户管理
- C++ 获取文件夹下的所有文件名
- 一个坑爹的问题:jsp中在js函数中嵌套java代码造成的问题
- 误识率(FAR)拒识率(FRR),TPR,FPR以及ROC曲线
- 优化代码
- 【Java没基础】Collection接口 与 Collections类
- Spring MVC 环境搭建(一)
- Linux指令--locate