yii2 rbac权限管理学习笔记

yii2 rbac权限管理学习笔记

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109014.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月15日 上午8:00
下一篇 2021年9月15日 上午8:00


相关推荐

  • 最详细的maven配置——报错了你打我[通俗易懂]

    最详细的maven配置——报错了你打我[通俗易懂]目录1、前言2、下载3、配置PATH、settings.xml以及本地仓库3.1、配置path3.2、配置settings.xml和本地仓库4、在IDEA中配置Maven1、前言maven说的简短一点就是一个大型的jar包管理工具,类似于工具人。只要有了maven,就不用去幸幸苦苦的找jar包了。wc,爽哉。好了,还是不多bb,我么还是直接干正事。(切记切记:安装maven必须装好jdk)2、下载首先我们还是去官网。瞅瞅最新版的是哪个版本。点我直达当然,玩Windows的人都知道,我们下

    2022年5月28日
    54
  • 理解面向对象的语言特点_面向对象的理解并举例

    理解面向对象的语言特点_面向对象的理解并举例前言:我们学习的javascript语言是一门面向对象的语言,所以这一概念我们需要理解与认识!下面是理解性的理论内容,不需要记忆,理解与思考我们的学习才能站在更高的视角!一、认识:面向对象是当今主

    2022年8月2日
    8
  • pycharm安装教程(非常详细)_扶梯安装步骤

    pycharm安装教程(非常详细)_扶梯安装步骤Pycharm安装+Anconda环境配置,需要下载软件的请访问​​​​​​(75条消息)Python软件.zip(pycharm安装包Anconda安装包)-Python文档类资源-CSDN文库(免费下载免费下载免费下载免费下载免费下载免费下载),没有安装Ancondade小伙伴可以访问Anconda安装(超详细)写文章-CSDN博客https://mp.csdn.net/mp_blog/creation/editor/120982868…

    2022年8月26日
    7
  • python偏函数理解_python中radians函数

    python偏函数理解_python中radians函数什么是偏函数partialpython中提供一种对于函数固定属性的函数偏函数的作用把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数偏函数的语法使用偏函数必须先导入from

    2022年7月31日
    8
  • 2025年ChatGPT图像API全指南:GPT-4o与DALL-E图像生成集成教程

    2025年ChatGPT图像API全指南:GPT-4o与DALL-E图像生成集成教程

    2026年3月16日
    2
  • windows vim配置_配置vim

    windows vim配置_配置vimwin10设置vim配置文件进入vim安装目录(C:\Development\Vim\),后打开_vimrc文件在文件末添加需要设置的内容 setnu”设置行号 setnobackup”不保存备份文件 setnoundofile”不保存undo文件 setlines=35columns=140”设置窗口大小 (持续更新)…

    2026年4月17日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号