CmsTop/权限机制
来自站长百科
基于 MVC(模型-视图-控制器) 架构开发的 CmsTop,可以非常方便的实现权限的精确控制。
CmsTop 在架构上吸取了传统 PHP MVC 框架的优点,同时又针依据 CMS 本身的需求和方便二次开发的考虑,将代码层抽象为了三层架构,即:app(应用,或者叫扩展)、controller(控制器,分前台、后台)、action(动作)。这样不但有效地解决了当应用程序规模过大时的代码组织问题,方便了二次开发,也为精确的权限控制打下了基础。
可以指定编辑部的张三这个编辑有组图的添加、查看、送审权限,这便是发稿员的角色。
从上面这句话中,可以引出如下的概念:
- 权限:CmsTop 中的权限是由 应用、控制器、动作 这三个要素组成的。以上面为例:组图 对应 CmsTop 的 picture 应用,而添加、查看 则分别对应 picture 应用中 picture 控制器的 add 动作和 view 动作(这里的控制器都为后台控制器,下文不再解释)。一个权限可以控制(限制)到应用,也可进一步细化到控制器、动作,十分灵活。
- 角色:角色是一组权限的集合,它抽象了一类拥有特定权限的人。张三就是一个被赋予了发稿员角色的编辑,或者更细分一点,可以称这种人为组图发稿员。同理,可以再划分一个文章发稿员;权限再大(多)一点,有所有内容模型的管理权限的,可以建一个总编辑角色,等等。想更改一类人可以做的事情,只需要修改他所属的角色,赋予或撤销某个权限就可以了。
- 部门:部门对应了实际工作中的部门划分,在 CmsTop 中,可以限制某个部门下可以有什么样的角色。如编辑部下有主编,同时可以划分新闻频道、娱乐频道,每个频道下又可以有频道主编、区块编辑、发稿员等等。这样,在添加管理员时,选择了所属部门,就会自动列出该部门下可用的角色,能更方便的控制账户的权限。此外,网站后台部门划分和现实工作中对应也有助于网站的运营和管理。
- 管理员:张三本人就是一个管理员,他属于编辑部,从发稿员这个角色上获得了组图的添加和查看权限。这些就是组成管理员的要素。需要注意的是,上面所说的权限和角色,都是一种头衔上的设置。也就是说,赋予了张三组图发稿员的角色,便拥有了添加并查看组图的能力;但由于并未指定他可以在哪个栏目下添加组图,所以他还不能在任何一个栏目下添加组图(除非他拥有特殊角色 ID:roleid=1,默认对应超级管理员,超级管理员是无视权限设置的)。因此,添加管理员时,需要指定给他栏目、页面、区块的管理权限。
送审是开启了工作流之后的动作。