对RBAC的理解

  RBAC (role-based access control) 基于角色的访问控制

   为了能够实现 用户对动作的访问权限管理 ,提出角色(组)的概念,把一类用户归到某一组中,也就是属于某一个角色,然后把角色和动作关联起来。属于某个角色的用户,就具有某个角色所关联的动作的访问权限。

  具体实现:理论上三张表即可实现 用户和动作的关联,因为用户和角色是多对多的关系,而角色和动作也是多对多的关系,需要加上两张关系表,一张是用户与角色的关系表,一张是角色和动作的关系表(这张表也叫授权表)。

  在TP中有一个Think/auth类,通过这个auth类,可以利用这里面的check方法来验证某个用户是否具有某个访问权限,如果当前用户具有某个动作的权限则返回真,如果没有则返回假。可以做一个基本公共控制器类,把验证放入这个基本公共类的初始化方法里面,让其他控制器继承这个基本公共控制器,当访问控制器的方法时候,首先会触发初始化方法,进行权限验证,通过后执行相应的方法,不通过重定向到 失败页面。可以在初始化方法里面加入一些特殊处理,如:超级管理员,某些动作不需要验证,人人都可以访问的操作。

超级管理员:在用户或管理员表里面规定一个ID为超级管理员ID,在初始化方法里面判断当前登录用户ID是否为超级管理员ID,如果是则用return跳出验证。

不需要验证的动作,可以使用数组 check_no = array('控制器1'=>['方法1','方法2','方法3'....],'控制器2'=>['方法1','方法2','方法3']...)来列出不需要验证的一些控制器的方法,然后再对用户访问的动作和这些列出来的方法进行对比,如果属于这些不需要验证的动作,则直接return。

   最后在模板中展示的时候把用户没有权限的链接设置成灰色(disabled),去掉没有权限的菜单。


1.Catholic

2.Christian

3.Christmas

4.February

5.January

6.Marxist

7.Negro

8.November

9.Thanksgiving

10.abandon

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值