手机版

Yii管理员权限控制的深入分析

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

说到CMS,最重要的是权限控制,尤其是一些复杂的场景,比如多用户、多角色、多部门、家长观看等等。最近,我们正在开发一个线下销售项目。本系统分为管理员、省代、客户、门店、销售、部门、部门老板下的子部门等。真恶心。我们的项目是使用在php中非常流行的yii框架开发的。虽然现在laravel很猖獗,但是有些部门的一些团队还是用yii框架,比如我们。

我刚接触yii框架,一开始对这个面向组件的框架很不适应。当时我计划写自己的权限,创建自己的权限表、关联表等。但是在学会使用yii来开发文档之后,我发现有一个权限控制RBAC。在yii-admin的帮助下,我可以实现对权限和菜单的完美控制。这个博客分为两个部门。在第一部分中,我将讲述如何构建权限管理,包括:安装yii-admin、创建权限表、使用权限控制菜单和访问权限等。这部分大致描述了一下。如果想看更详细的步骤,可以参考这个更详细的解释:http://www.manks.top/tag/rbac.html,毕竟不难打造和使用,只要按照步骤来就可以了。在第二部分,我将解释我自己的理解,包括:菜单的优化、子页面导航的选择性突出显示、按角色显示菜单、权限检测的改进等。

一、易管理的建设相关

1.构建yii-管理

首先你要安装一个yii矿,因为yii-admin是基于yii框架的,所以没有框架可以玩!你可以直接在github上下载源代码

yii2:https://github.com/yiisoft/yii2

yii2-admin:https://github.com/mdmsoft/yii2-admin

当然可以用composer来安装,这样最好。如果安装yii,可以切换到项目目录,直接执行以下命令:

Phpcomponent。phar需要MDM soft/yii 2-admin ' ~ 2.0 ' PHP component。phar更新,然后将yii2-admin的配置项添加到配置中。请注意,如果yii2-admin的配置在公共目录中是全局有效的,那么您将在执行命令控制台时报告错误,因此您应该对web模块应用权限控制。我们在这个项目中不使用高级模板,所以您可以在config下的web.php中直接编写配置。配置如下:

首先定义别名:

别名'=[' @ MDM/admin '=' @ vendor/MDM soft/yii 2-admin ',],在模块中添加admin组件:

admin '=[' class '=' MDM \ admin \ module ',' layout '=' @ app/view/layouts/main _俏皮',//yii 2-admin的导航菜单],添加和添加authManager配置项:

需要强调的是,yii中的authManager组件有两种模式:PHPMMANAGER和DbManager,两者互不相同。PHPMMANAGER将权限关系保存在文件中,DbManager将权限关系保存在数据库中。我们使用保存在数据库中的方法。

auth manager '=[' class '=' YII \ RBAC \ dbmanager ',//或使用' YII \ RBAC \ dbmanager'],添加为访问权限:

as access '=[' class '=' MDM \ admin \ components \ accesscontrol ','允许操作'=[//在此列表中添加或删除允许的操作//'admin/*,/'*,' site/*,' API/*,]。

2.配置数据库权限表

这一步,不需要自己写。将命令行切换到yii2目录,并执行以下命令来创建rbac所需的表。但是,数据库需要创建自己的名称:yii2basic。如果要执行该命令,您需要编写刚刚在console.php配置的配置文件的副本。如果执行不成功,可以取出脚本生成数据表,自己执行。

Yii迁移[电子邮件保护]/RBAC/迁移yii迁移[电子邮件保护]/管理/迁移。如果成功执行,将生成五个表,并且需要一个用户表。可以自己添加。

菜单//菜单表

Auth_rule //规则表

角色、父角色、子权限名称对应的Auth_item_child //权限

澳大利亚

版权声明:Yii管理员权限控制的深入分析是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。