zentaoPHP权限控制

2024-01-24 17:22:50
朱金勇
297
最后编辑:朱金勇 于 2024-01-24 17:37:53
分享链接

禅道权限的基本概念

禅道的权限有四个层级,分别为:
1. 应用,等同于禅道左侧菜单栏,代码中用 nav 表示;
2. 模块,权限最顶层的分类,代码中用 subset 表示;
3. 权限包,按照模块不同的操作进行分类,代码中用 package 表示;
4. 权限,具体的权限,代码中用 priv 表示;

因此,所有的权限都会属于相应的模块和权限包。比如“完成待办”这个权限,属于对待办的维护,因此在 “待办” 模块的 “创建维护待办” 权限包中。




权限的代码位置

禅道的权限配置代码在group模块,主要在以下2个文件:


    1. group/lang/resource.php,用于设置权限的显示名称;
    2. group/packagemanager.php,维护了所有权限的组织关系;

1. 语言定义

我们首先在group/lang/resource.php中能够找到语言定义:

这行代码的意思是todo模块的finish方法,在权限列表中显示的是todo->finish语言项,我们可以去todo模块的语言项找到这个名称。

2. 权限包

首先我们会在group/packagemanager.php中定义一个”待办“模块。如下图,这样我们在”我的“权限菜单下就能看到”待办“这个模块了。

”待办“模块本身的显示文字可以可以使用 $lang->todo->common = ‘’; 进行定义。

接下来我们可以定义”权限包“,我们定义一个manageTodo的权限包,使用privs属性定义权限包的所有权限。
manageTodo权限包显示的文字可以使用 $lang->group->package->manageTodo = ''; 进行定义。

定义好权限的组织关系以后,我们就可以在预期的位置看到该权限了。

3. 如何扩展

1. 在  extension/custom/group/ext/lang/zh-cn/test.php 中可以配置 resource等语言项;
2. 在  extension/custom/group/ext/config/test.php 中配置 组织关系;

发表评论
评论通过审核后显示。