用啥方法实现根据用户权限不同,主菜单显示不同的项?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用啥方法实现根据用户权限不同,主菜单显示不同的项?相关的知识,希望对你有一定的参考价值。
参考技术A 我也在做类似的问题。方法有二:1。设权限表,每次登陆时将用户名与权限表的权限比较,然后设置菜单的enable属性。2。用数据库本身的安全性。通过数据库的params属性将用户名和密码送入数据库,进入后对每张表判断权限,然后设置菜单的enable属性。ThinkPHP:根据不同权限显示不同内容,该如何实现呢?
怎样实现根据不同用户权限来分别显示内容呢?
例如制作了一个页面,但是该页面的某些部分只能被已登录用户看到,以前作java的时候直接判断session,然后将代码放入<%%>里就行了,但是ThinkPHP的模版都是.html了,就不能嵌套php代码了吧?这样该怎么办呢?求解
首先、用户登陆时候验证用户存在之后把用户的id存入session之中,之后在common类(这个类是继承的action类,之后其他要用到权
限的类来继承common类)中,使用_initialize()方法(继承这个类的首先都要初始化这个方法,通过这个方法,可以达到用户权限的判断)。
之后、读取所用的节点,并且根据用户的id读取出用户所属组(role),之后再根据用户组取出权限表中的节点,最后用in_array()来判断用户是否有这个节点(栏目)如果有则显示(读取出来的节点),没有则unset()方法
删除。这样实现了,比较简单的方法是使用官方的类库解决!
下面再补充几个重要的步骤:
建表:到thinkphp中的ORG/Util/RBAC.class.php中之后里面有建数据库表的代码(文件开头部分就有)。有四个表(节点表(node),用户所属组表(role),权限表(acces),用户角色表(role_user))。创建四张表但是‘用户表’要自己建(总共有五张表),最后添加数据就是了。
可能说的很空洞,最好的还是去官网看点视频之后在看这个,或者相关的说明就懂了。说的不是很清楚,但是希望能给你指导一个方向吧。也为了能帮到更多初学者和鼓励自己学习更多来帮助到更多的人,我也开通了百度空间(地址:hi.baidu.com/flyxiangshang)。也希望大家能多多支持。很多事情不是你做不做,最重要的是你能坚持多久。向上吧! 参考技术A php支持与html相互套嵌,,在数据库中创建一个字段,来判断,,比如1可以,,2不可以。。就好了,,,,但是在这种MVC思想当中,,也是调用模板。不建议套嵌使用
以上是关于用啥方法实现根据用户权限不同,主菜单显示不同的项?的主要内容,如果未能解决你的问题,请参考以下文章