thinkphp 如何写自己的Rbac

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 如何写自己的Rbac相关的知识,希望对你有一定的参考价值。

我想用Rbac做一个后台,不知道应该怎么去改动啊。求高手指点
就是后台的框架。Rbac做一个框架,用来做权限处理。但是不知道从哪里下手啊,求高手指点

哎,就35分,要回答你这个问题的话。。。有点亏了!呵呵。。
下面,我就大致跟你讲一下思路吧!
----------------------------------------------------------------------------------
首先,先说一下怎样实现RBAC的权限过滤。其实说白了就是在我们每次访问Action操作的时候,都问一下,我可不可以操作,如果可以,放行;否则,拦截并给出提示!

那么,我们怎么才能实现在每次访问Action的时候都会先“问”一下的操作呢?并且,这个“问”一定要在所有程序开始执行之前,否则就没有意义了。。。

这样的话,如果实现上述操作,就涉及到了两点:
1、每次问的时候是问谁,怎么问?
2、“问”操作怎么才能在所有程序开始执行前执行?

答:
1、在执行用户登录的时候,登录成功后必须有一个操作是查询该用户能访问的节点(Action),然后把查找到的信息封装到SESSION里,然后每次在执行Action前,都要in_array(问)一下:如果当前访问的节点Action在我的SESSION里,放行;否则,拦截!
2、Tp自带了一个_initialize公共方法,该方法实现了每次在执行Action的时候都要先执行这个方法!我的建议是:先建一个BaseAction类,让这个类继承Tp的Action类,然后后续自己写的每一个类都要继承BaseAction这个类!这样,在BaseAction这个类里边只有声明一个_initialize公共方法,就能做到每次在访问节点之前“问”的操作了!

----------------------------------------------------------------------------------

嗯,思路大概就是个思路,没法再详细了,再详细就得把那5张表搬出来了,要是真搬出来,那就得说到天黑了,呵呵。。。。那5张基本的表(也可以用4张)的关系必须得搞清楚了,否则上边的我等于白说!

----------------------------------------------------------------------------------

涉及到的5张表(或者4张):
管理员User表
管理员角色对应UserRole表(可无)

角色Role表
角色节点对应RoleNode表
节点Node表

如果你连这5张表的关系还没搞明白的话,那我上边的答案等于白写,那么推荐你可以先看一下这个帖子!
http://blog.csdn.net/zhouzhouwu/article/details/6511223

----------------------------------------------------------------------------------
但愿能帮到你!!!
参考技术A 你直接把TP的RBAC例子复制过来用不就得了。。。。追问

那登陆页面呢,想自己去写,怎么改啊

追答

。。你问的太宽了。。能否是有针对性的问题,你想改哪,改成什么。

thinkphp 哪里有RBAC用户权限管理 后台功能的视频教程?

如何在后台实现 RBAC用户权限管理的功能? 求教程

参考技术A http://www.thinkphp.cn/topic/1659.html
17-24节讲解RBAC本回答被提问者采纳

以上是关于thinkphp 如何写自己的Rbac的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp集成系列之rbac的升级版auth权限管理系统demo

thinkphp加iview-admin的前后端分离项目,请问thinkphp如何调试后端自己写的接口?

thinkphp 3.2.3 rbac 超级管理员可登录 其他提示没有权限

thinkphp 哪里有RBAC用户权限管理 后台功能的视频教程?

thinkphp自己写的类放在哪个文件夹里

ThinkPHP中RBAC权限控制求助