yii2 rbac权限管理学习笔记
来源:互联网 发布:x61 linux finger 编辑:程序博客网 时间:2024/06/14 14:58
1、首先我们要在组件里面配置一下 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/ 运行此命令生成权限数据表
2、配置完毕,下面我们尝试着创建一个 许可 Permiassion,代码如下
// 创建许可
public function createPermission($item)
{
$auth = Yii::$app->authManager;
$createPost = $auth->createPermission($item);
$createPost->description = '创建了 ' . $item . ' 许可';
$auth->add($createPost);
}
3、好的,许可我们就创建完成了,下面我们创建一个 角色吧 roles
// 创建角色
public function createRole($item)
{
$auth = Yii::$app->authManager;
$role = $auth->createRole($item);
$role->description = '创建了 ' . $item . ' 角色';
$auth->add($role);
}
4、好的,就是这么简单,不要激动,下面更简单,给角色分配许可,上代码
// 为角色分配许可
public function createEmpowerment($items)
{
$auth = Yii::$app->authManager;
$parent = $auth->createRole($items['name']);
$child = $auth->createPermission($items['description']);
$auth->addChild($parent, $child);
}
5、好的,分配许可也创建完成了,我操,太尼玛简单了,继续上代码,给角色分配用户
// 给用户分配角色
public function assign($item)
{
$auth = Yii::$app->authManager;
$reader = $auth->createRole($item['name']);
$auth->assign($reader, $item['description']);
}
6、好的好的,就是这么简单,我自己都他妈不敢相信啊,你相信吗???最后一步,验证用户是否有权限
public function beforeAction($action)
{
$action = Yii::$app->controller->action->id;
if(\Yii::$app->user->can($action)){
return true;
}else{
throw new \yii\web\UnauthorizedHttpException('对不起,您现在还没获此操作的权限');
}
}
好了,一口气都他妈写完了,老爽了。当然,可以创建就一定可以修改和删除,修改和删除都是多表关联操作的, Yii也为我写好了方法,当然你也可以自己去写,都是小意思了。
数据库sql文件地址 /vendor/yiisoft/yii2/rbac
- yii2 rbac权限管理学习笔记
- yii2.0 rbac权限学习笔记
- YII2 学习笔记-- RBAC
- yii2.0 rbac权限学习笔记 [ 2.0 版本 ]
- Yii2-admin RBAC权限管理的实现
- Yii2-admin RBAC权限管理的实现
- Yii2-rbac权限基础--菜单menu管理
- Yii2-admin RBAC权限管理的实现
- 浅谈Yii2中rbac的权限管理
- Yii2全面解析之权限管理RBAC
- Yii2-rbac权限基础--权限管理的实现
- yii2-rbac权限设置
- yii2学习笔记(十)rbac
- Yii2 framework学习笔记(六) -- RBAC
- yii2高级模板借助于yii2-admin&yii2-adminlte-asset的RBAC权限管理
- Java笔记--权限管理(RBAC)
- yii2.0 rbac权限控制
- Yii2 rbac权限控制详解
- shell获取目录下所有文件夹的名称并输出
- 设计模式的学习-(1)单例模式
- windows dos命令大全
- windows dos窗口下如何复制和粘贴
- yii 获取当前模块名、控制器名 、动作名
- yii2 rbac权限管理学习笔记
- PHP查找中文字符的解决方案
- set(集合)数据结构
- centos7安装mariadb
- centos7 安装Zabbix3.0
- java类加载机制
- php获取并删除数组的第一个和最后一个元素
- 百度地图覆盖物id
- yum运行时提示被锁住了解决办法