ThinkPHP:根据不同权限显示不同内容,该如何实现呢?
怎样实现根据不同用户权限来分别显示内容呢?例如制作了一个页面,但是该页面的某些部分只能被已登录用户看到,以前作java的时候直接判断session,然后将代码放入<%%>...
怎样实现根据不同用户权限来分别显示内容呢?
例如制作了一个页面,但是该页面的某些部分只能被已登录用户看到,以前作java的时候直接判断session,然后将代码放入<%%>里就行了,但是ThinkPHP的模版都是.html了,就不能嵌套php代码了吧?这样该怎么办呢?求解 展开
例如制作了一个页面,但是该页面的某些部分只能被已登录用户看到,以前作java的时候直接判断session,然后将代码放入<%%>里就行了,但是ThinkPHP的模版都是.html了,就不能嵌套php代码了吧?这样该怎么办呢?求解 展开
2个回答
展开全部
你说的这个问题就是thinkphp中的Rbac用户权限问题,需要在数据库中建立多张表来实现(这是最重要的一步)。先来说一下总的思路:
首先、用户登陆时候验证用户存在之后把用户的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)。也希望大家能多多支持。很多事情不是你做不做,最重要的是你能坚持多久。向上吧!
首先、用户登陆时候验证用户存在之后把用户的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)。也希望大家能多多支持。很多事情不是你做不做,最重要的是你能坚持多久。向上吧!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询