我开发网站 后台一直是用的RBAC来判断权限的,但是这次写一个后台碰到了点问题 没有想到特别好的办法 只能求助论坛各位大神了 
我想问下,对于RBAC 同一个操作不同权限 应该怎么做呢 
就是比如说 查看管理员  网站所有的角色都有这个功能
但是  超级管理员能看到所有 
站长管理员能看到自己旗下的
普通管理员只能看到自己 如果直接在代码里判断 这3个角色感觉就写死了 对以后扩展很不好 而且 以后肯定还有别的角色 
RBACPHP管理

解决方案 »

  1.   

    用类啰,传入角色参数,输出操作
    如果只是操作范围不同,例如输出的SQL语句不一样,可以用参数计算SQL语句就行
    如果是操作方式不同,可以根据参数调用不同的方法,例如switch调用
    这样即使增加角色,也是增加一个switch分支和相应方法,原来类里面的方法不用改
      

  2.   

    我在权限列表里面加了个setting属性 这个字段是一个序列化的数组 里面有个属性是查看属性 查看属性有3种状态 1 查看全部 2查看当前和下级 3 查看自己
      

  3.   

    你在那个方法里
    增加判断
    比如站长级 就有一个分站ID吧?那么在查询时就显示 在此分站ID下的用户信息就好这个不是RBAC的问题 只是一个简单的查询思路