根本就不用那么复杂,只是个组合游戏$d = array('浏览', '新建', '修改', '删除');
$u = array(0,1,2,3);
foreach($u as $k) {
  echo "\n$k ";
  foreach($d as $p=>$v) echo $p == ($p & $k) ? $v : '';
}
0 浏览
1 浏览新建
2 浏览修改
3 浏览新建修改删除

解决方案 »

  1.   

    需要根据需求确定使用RBAC1,RBAC2,RBAC3,不过原理都差不多。
      

  2.   

    我经常用的方式是
    管理员1:
    {
        [权限类型1]=>[读,写,修,删],
        [权限类型2]=>[读],
        ...
    }
    判断的时候用 check(权限类型,权限)
      

  3.   

    这得根据你的需求来设计。如果你的权限划分很简单,比如数据对象的增、删、改、查权限,就可以不设置“角色”原型,直接参考linux的目录访问权限码设计。如果较为复杂,则可以参考二楼的设计。觉得二楼的设计适合复杂的权限管理。
      

  4.   

    可以参考一下ThinkPHP的RBAC管理,分别设立3个表,一个用户表,一个权限表,一个角色表,三者关联就构建了RBAC的权限管理,只要采用这个思路就可以构建出一个很不错的权限管理平台。