求助关于spAcl权限
发布于:2022-01-17 09:50:54
#1 phpha
我是想实现这样一种方式:
用户->用户组->组对应权限
这样的话在后台比较容易实现权限的划分。
在论坛里搜索了很久,看了几个帖子,目前的理解是自己修改 checker ,然后写自己的验证方式(可以在用户模型里面,没错吧?)
现在有一点,就是框架分为了 maxcheck 和 mincheck ,有对应的 SPANONYMOUS ,我修改了这个东西不知怎么处理……
现在的主要原因是我对框架的核心不太清楚,只是急于实现这个方法,望JAKE提示一下……谢谢!
该贴已经同步到 phpha的微博
2011-06-18 09:58:12
#2 jake
手册:
http://speedphp.com/interaction-acl.htmlACL和框架核心没关系的,主要是通过扩展的方式加载和处理而已。
ACL直接就是为了实现“用户->用户组->组对应权限”这样的结构,简单的过程:
1. 用户表,有组字段(或者叫角色字段)
2. ACL表,spAcl自带(按手册中说明建立),是组与权限的对应。
3. 这里还可以增加一个角色表,作为记录角色之用,其实和上面的结构关系不大。
首先管理ACL表,然后角色和控制器(功能)一一对应。
然后管理用户表,对用户赋予某个角色(组)的字段值。
用户登录的时候,用ACL的set来设置他属于的角色(组),ACL会在别的页面自动判断该用户是否有权限执行操作(控制器/动作)
具体可以参考手册中的实例和论坛的例子。
PS:
不需要修改checker,修改checker是当结构比“用户->用户组->组对应权限”复杂的多的时候才使用。而maxcheck 和 mincheck是有不同的应用场景,看手册选择适合自己的场景。
spAcl的角色(组),可以是用户本身,也可以是角色,非常灵活;但许多人以为那只是用户本身,所以要想办法修改,其实那没必要。
2011-06-18 10:09:13
#3 phpha
回复 2 jake 嗯,思考一下,谢谢Jake!总是这么热心!
2011-06-18 10:17:06
#4 phpha
其实,上面的问题,我没有表达清楚~哎,有时候真郁闷~
下面我问个问题,呵呵~
现在我想做的就是在后台可以添加用户组,同时用复选框方式确定其拥有的所有权限(C-A),然后循环插入acl表即可。
只是,感觉操作多的话这样效率会不会降低,因为acl记录会很多……
2011-06-18 10:37:47
#5 jake
不会减低效率,因为记录也不算多。
按最大量估算:即使有几百个控制器+动作,几十个用户组,应该也只有几万条记录,加上索引,只搜索很少修改。搜索效果还是没多大影响。
比起几百控制器和几十用户组(几百用户)的系统其他表来说,那是小得可怜的数据表了。
2011-06-18 10:44:52
#6 phpha
回复 5 jake 嗯,是滴是滴,呵呵~
2011-06-18 11:25:25