求助关于带参数链接的权限设定

#1 阿海



目前采用了acl的方式来开发权限管理,但遇到一个“数据权限”问题:

即系统本身产生的栏目数据,如何设定权限?

例如,有一个内容管理的模块,这个模块上新增了多个栏目,现在希望不同的角色组,可以管理不同的栏目内容。

我之前参考 https://www.speedphp.com/thread-5111-1-1.html 这个链接上实现的权限管理,现在的想法是:

在i_auth_rule增加一个字段args,用以保存“参数信息”,例如,cid/1,在判断权限时,同时判断在当前请求链接里,是否包含对应的参数信息。由此来判断数据权限。

不知道这种方式是否可行,另外,有没有其他简单的方式?



2018-08-06 11:13:34

#2 jake

其实差不多就是这个方案。

按照你的需求,因为这种是业务强关联的权限,所以一般做法是直接跟业务模块表挂钩,方便管理和移植。

简单来说是在“栏目”表里面,增加“有权限用户”的字段,逗号分隔。或者是建一个栏目权限表,记录:栏目<->有权限的用户 这样的关系。
如果未来可能会扩展的,如未来可能有对栏目不能读/只读/可写/全盘控制等细分权限控制,推荐是用栏目权限表的方式,这样方便后续扩展。
如果猜测未来肯定不扩展,只是按栏目访问作为最终的权限,那么建字段即可。
然后把栏目相关的权限页面,包括发文章等操作,都归到一个父controller上面,通过这个父controller的init()来全局检验传入的栏目ID(POST或GET)来检查(查上述字段或表)当前用户是否有当前栏目ID的权限,有则通过无则拦截。

刚刚注意到楼主说的是权限组,其实权限组可以等同于这里说的用户的。

2018-08-06 11:34:03

#3 阿海

jake 发表于 2018-8-6 11:34
其实差不多就是这个方案。

按照你的需求,因为这种是业务强关联的权限,所以一般做法是直接跟业务模块表挂 ...
非常感谢,我按你说的这种方式,在栏目内增加字段控制哪些用户组可以操作!

谢谢老大的指导!

谢谢!

2018-08-06 11:37:29