Yii2 的角色权限管理到底应该怎么实现? [ 2.0 版本 ]
我大概已经知道角色权限管理的过程:
1、添加权限;
2、添加角色并分配权限;
3、给用户分配角色(和权限);
4、验证用户是否有权限。
但是,如何区分角色等级?
例如有三个角色,管理员(具有所有权),编辑(可以对文章等进行增删改查)、会员(仅能查看):
管理员具有所有权,无容置疑;
编辑可以对网站进行大部分操作,但无法对角色和用户是管理员或编辑进行操作,无法对管理员添加的文章进行审核等操作,也无法对其他编辑添加的文章进行审核等操作。但可以添加不高于自身权限的角色和用户,并对不高于自身权限的用户添加的文章进行审核和删除等操作。
会员仅能查看文章等,对自己的个人信息进行修改,但无法修改角色,也无法创建角色和权限。
这种要求应该如何才能实现?????
共 4 个回答
-
还有两个概念:规则、默认角色。
你的三种角色(管理员、编辑、会员)可分为三个组,使用默认角色可以解决。如果编辑还有不同分工,则创建不同的角色(非默认角色)分配给用户。
共 3 条回复@性感的农民 https://github.com/zero-mmx/mrbac 这个权限管理好用 ,配置就使用了。
-
可以试试 :https://github.com/zero-mmx/mrbac 这个权限管理,配置就使用,无需写额外代码。 有IP管理,debug配置。权限总是可见配置
共 3 条回复qq674581328 回复于 2017-05-24 09:32 回复@墨轩道人 这个可以配置allowIps(允许ip访问controller), 我反馈开发者下,让他加个判断。
qq674581328 回复于 2017-05-24 09:49 回复@qq674581328 'mrbac' => [
'class' => 'mrbac\MrbacModule', //'layout' => '@path/to/your/layout', // if you want to change layout | 如果你想改变权限管理的界面ui的话,可以指定布局 'idField' => 'id', // id field of your User model that corresponds to Yii::$app->user->id 'usernameField' => 'username', // username field of your User model | 用户名 'userClassName' => 'path\models\User', | 指定的用户 ActiveRecord类 Model 'searchClass' => 'path\models\UserSearch', // fully qualified class name of your User model for searching 'debug' => true, 'allowedIPs'=>array('*'), 'alwaysAllows' => [ '/home/index', '/home/home', '/home/logout', '/home/login' ], 这边有个配置 allowIps
墨轩娣 无锡
注册时间:2015-03-25
最后登录:7小时前
在线时长:274小时58分
最后登录:7小时前
在线时长:274小时58分
- 粉丝38
- 金钱59765
- 威望150
- 积分64005