thinkphp rbac设置没有权限的内容不显示出来
答案:2 悬赏:50
解决时间 2021-04-09 23:55
- 提问者网友:枯希心
- 2021-04-09 06:39
thinkphp怎样设置进入后台,不显示没有权限的内容,比如(左边的菜单有一些没有操作权限,全局配置没有权限等),用普通账号进来看不到这些没有权限的内容出来,请高手帮帮忙,谢谢!
最佳答案
- 二级知识专家网友:零负荷的放任
- 2021-04-09 07:10
一个sql解决:
$uid = $_SESSION[C('USER_AUTH_KEY')];
$db = new Model();
$node = $db->query("select node.id,node.name,node.title,node.pid from haran_node node where id in(select access.node_id from haran_access access,haran_role role,haran_role_member rolemember where rolemember.user_id = {$uid} and rolemember.role_id = role.id and role.id = access.role_id) and node.isdisplay = 1 order by node.sort");
$uid = $_SESSION[C('USER_AUTH_KEY')];
$db = new Model();
$node = $db->query("select node.id,node.name,node.title,node.pid from haran_node node where id in(select access.node_id from haran_access access,haran_role role,haran_role_member rolemember where rolemember.user_id = {$uid} and rolemember.role_id = role.id and role.id = access.role_id) and node.isdisplay = 1 order by node.sort");
全部回答
- 1楼网友:废途浑身病态
- 2021-04-09 07:54
相同点:
1.两种都是基于角色权限控制
2.都是同一个用户可属于多个角色或用户组
不同点:
rbac:
1.rbac是基于节点控制,根据3级节点,module,controller,action,节点类似与树形结构,3级节点间相互有关联
2.表关系:用户表->用户角色关联表->角色表->角色节点关联表->节点表
3.根据3级节点控制,粒度到操作action,每个节点为单一的模块,控制器或操作
auth:
1.auth是基于规则控制,定制规则和条件表达式 ,每一条规则都是独立的
2.表关系:用户表->用户和用户组关联表->用户组表->规则表
3.根据规则控制,可自由定制不同的规则,非常自由,同一个规则内可以定制多个不同节点(中间的关系:or and)
4.可定制规则表达式,比如定制积分表达式
想法和问题:
auth:
1.auth验证多条规则时条件表达式不起效果
2.auth官方例子只说一个根据积分的规则,假如我规则"admin/goods/goodslist,admin/goods/goodsdel"我能不能定义这里面的某些id所属角色操作权限的规则表达式,而这些所属角色id是goods表里的某个字段,可能所属的角色是多个不同的角色?
3.auth不支持"admin/*"泛解析,因为他每一条规则都是独立的
4.对菜单,页面,按钮类的显示使用auth会必rbac更好更方便
rbac:
1.新手配置rbac的时候经常出现 rbac $_session['_access_list'] 获取不到的问题,因为rbac是使用thinkphp的底层db引擎dsn连接数据库,需要配置数据库链接和5个表的关系,字段名和表名不能出现问题
2.允许完成"admin/*"类型的泛解析,比如这里直接定制一个admin模块的节点,不要下级节点就可以了
通用:
1.不管是rbac的角色表或者auth里面的用户组表也好,都可以扩展,比如对角色或用户组进行多层分级
2.rbac的节点和auth的规则都可以进行分级,比如前端功能权限,后端功能权限,后端某个功能模块权限等等
3.上面两个东西都不能应用到权限管控之中去,比如rbac不能分享上级角色权限,auth用户组也不能,但是能更好的管理和更加流程化的操作.
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯