rbac具体能实现哪些厉害的功能? [ 2.0 版本 ]
我举个例子,比如用户分为三种,一种普通用户,一种实名用户,一种高级用户。
普通用户只能创建个文章。
实名用户可以创建新闻。
高级用户可以使用网站皮肤。
如果我不用rbac,我可以设置一个字段,1是普通,2是实名,3是高级。执行action的时候我判断这个字段的值,不一样达到了权限控制了吗?
请问rbac有何高明之处?
共 3 个回答
-
1是普通,2是实名,3是高级。执行action的时候我判断这个字段的值
那如果,作为普通(1),有20个Controller,100个action,你是要在这100个action中每一个都判断,if(xx=1){}吗?然后我突然多了一个“4是vip”,你又一个一个action去判断吗?作为普通的,应要求,100个action有30个不能访问,又一个一个去修改?
在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。
首先角色,普通、实名、高级 这就是角色
然后权限,你的action就是权限。rbac你可以这么理解,你用户表设置一个字段,然后关联到角色表(普通、实名、高级)的id,然后这个角色拥有那些权限,就是action集合,那么,你只需要在一个地方,获取他的角色,然后找到对应的权限集,判断当前这个访问是否在这个集合里面,如果包含在集合里面说明有权限访问,如果不在集合里面,说明没权限访问。你要操作的,只需要给这个角色,增加或者删除对应的action即可。
数字派 北京
注册时间:2016-04-19
最后登录:2023-03-07
在线时长:52小时34分
最后登录:2023-03-07
在线时长:52小时34分
- 粉丝10
- 金钱1515
- 威望10
- 积分2135