yii 阅读 10690
Yii2 第18章  rbac规则的讲解

Yii2 第18章 rbac规则的讲解

2016-07-25 • lulubin

需求:普通管理员只可以查看修改自己的信息,而站长可以修改所有人的信息

一、用 gii 生成 user 模型和 CRUD 操作

https://file.lulublog.cn/images/3/2022/08/CeLRZ2AX2Z6XQg5Z5xaxNH5gxX8zgA.png?sign=9f611e5a8bc6854979eee6ca64345311&t=6acd0400

https://file.lulublog.cn/images/3/2022/08/XQo1u1wQ11E71Gzeg20g1q7omgQqgh.png?sign=38661d275bfeef35c6f9960c6b4741af&t=6acd0400

二、创建“管理用户”和”规则“菜单

1、点击“路由”,然后点击

https://file.lulublog.cn/images/3/2022/08/KF09QFMq1N1FqoQz3Bqq3rq1IRFbo9.png?sign=f48e638980307d28ee7fa6d1144aa638&t=6acd0400

,即可以看到多了刚刚生成的 userController 的路由

https://file.lulublog.cn/images/3/2022/08/Psyllbf9bAsFsr931bzRyLsBxJ1SQL.png?sign=1e8d39d08b748724e5c046e069c2b536&t=6acd0400

将 /user/* 和 /user/index 移动至右边

https://file.lulublog.cn/images/3/2022/08/jnM69pGY9a9H9tPne9FrEmXKk9r6MX.png?sign=4f5842d80216911b0237e9848f80f92a&t=6acd0400

将 /admin/rule/* 和 /admin/rule/index 也移动至右边,待会创建 “规则” 菜单

2、点击“菜单”创建以下菜单

https://file.lulublog.cn/images/3/2022/08/JQ080g0867I025j05CcL8XC92722z0.png?sign=913d73efa4a46cbb5b288bbce6ba297d&t=6acd0400

https://file.lulublog.cn/images/3/2022/08/TbLHx62ul68qXZo2dxkWZgwLuqUZp2.png?sign=85e151bb74dffb4e3822f82607b71caf&t=6acd0400

三、添加“规则”(路由)给“权限控制”(权限)

1、点击“权限”然后进行创建“管理用户”的权限

https://file.lulublog.cn/images/3/2022/08/gQXRql5vo1R9RsV5D1Q9Rs2pRo5O2z.png?sign=0258f5db530e2f010299287c02df6225&t=6acd0400

2、点击“权限”,然后再点击”权限控制“的查看按钮,将 /admin/rule/* 移至右边

https://file.lulublog.cn/images/3/2022/08/yn2zL6h8gGS6hoZ6vbuOUEUou1uBuK.png?sign=9b045dc44cc3e33562492cff1c57b761&t=6acd0400

3、点击“角色”,为“站长”和“普通管理员”添加“管理用户”的权限

https://file.lulublog.cn/images/3/2022/08/PEtgjPZq0g662Ur2Zu3zht5zZ53z2j.png?sign=8ebde4f3c51379e17649e61d75683407&t=6acd0400

https://file.lulublog.cn/images/3/2022/08/Xl6Og05MIlsNnzS00gsSMGD06wozNj.png?sign=9f6c16afa56f0f01e20e46a17aae7020&t=6acd0400

四、为“普通管理员”添加“修改用户”的规则

1、新建“修改用户”的规则

① 新建 backend\components\UserRule 这个类文件

https://file.lulublog.cn/images/3/2022/08/LfRr1f5JZb6FZQgkCg6LH5QJ46YKrC.png?sign=9e34c91415a419974f4c51f33c2c0b9c&t=6acd0400

② 刷新页面,左侧菜单出现“规则”的菜单,点击“规则”创建“修改用户”的规则

https://file.lulublog.cn/images/3/2022/08/r4nWpm4Wkbsaa0WOPPW8VlDbVwamDP.png?sign=5c3067e4728cada63268667023034280&t=6acd0400

2、为“普通管理员”添加“修改用户”的规则

点击“角色”,再点击“普通管理员”的更新按钮

https://file.lulublog.cn/images/3/2022/08/LFwqSeXeqgiZICeIFQqocSqQeOFi1x.png?sign=825a67dc989128f4acdb91df37bd6b0a&t=6acd0400

打开 auth_item 表,可以发现“普通管理员”这个记录被修改了

https://file.lulublog.cn/images/3/2022/08/uSoIoZwztIcZwj3noiTUIcCQutoUSz.png?sign=e4f3c0d4663bcaaefec01f27cacf2b8a&t=6acd0400

五、测试“修改用户”的规则是否发挥作用

1、登录 master 站长,点击“管理用户”,再点击 admin 修改的按钮,发现可以修改

2、登录 admin 普通管理员,点击“管理用户”,再点击 master 修改的按钮,发现无法可以修改

https://file.lulublog.cn/images/3/2022/08/RTjit4Rh7zMJNtKBHrSKRaOZilTtku.png?sign=ebab4512f961259278cdd2d1a093620e&t=6acd0400

表明“修改用户”的规则对“普通管理员”这个角色发挥作用了。

注意:测试时务必把 \backend\main.php 的 * 注释掉

https://file.lulublog.cn/images/3/2022/08/S323jqNRZZN2GZWw7RBusSZCw8QwS3.png?sign=7f6be40ef2bb8566b2279a4bde19fa76&t=6acd0400

打赏

×

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开微信扫一扫,即可进行扫码打赏哦