我在设计新的和相当大/复杂的网站时潜入RBAC.我正在试图弄清楚是创建一个任务还是只是一个带有biz规则的操作.
现在,我已经阅读了大多数(如果不是全部)现有文档.当前的文档说"任务由操作组成".这篇 wiki文章说,不同的术语只是命名约定,唯一存在的限制是结构性 - 角色必须包括任务(或其他角色); 任务应包括操作(或其他任务),操作是不由其他实体进一步组成的原子术语.我还阅读了"Agile web dev ..."和"Yii cookbook"书中的相关章节 - 两者都没有进一步阐述这个问题(至少从我的眼镜中可以看出).
让我们举例说明我将提出的问题.实际上,让我们使用类似于上面提到的大多数文档资源中演示的示例:假设我有一篇博文,我希望/需要让其作者能够"更新自己的帖子".现在,为什么这应该是文档资源中常见的任务,而不是具有商业规则的操作?
我认为上面的问题揭示了"任务"的明确定义(当然在RBAC背景下).
请帮我提炼出更好的RBAC任务定义.
编辑:我被建议以下提到的术语的定义,以帮助以有用的方式概念化它们.简而言之,最简单的形式是:操作是基本的构建块.它们是开发人员使用的材料,只有它们.开发人员组成操作的任务和操作.角色由任务组成,例如一组任务.角色和任务是网站管理员应该使用的 - 分配和撤销用户而不是操作.这是查看和掌握这些实体(角色,任务和操作)的好方法.您是否有另一种选择来进行不同的概念化?任何意见将不胜感激.
TIA!波阿斯.
我想说的和你在问题编辑中所做的一样。任务只是用户可以执行的具有共同点的操作的组合。例如,您有操作oList
、 、oView
,oCreate
这些oUpdate
是操作开发人员分配给控制器操作以进行访问控制的操作,其中前两个只能读取,后两个具有对数据的写入访问权限(这就是它们的共同点)。因此,您现在想要将它们组合到任务中tInspect
,并且tManage
两者都包含 2 个操作,第一个可以列出和查看,第二个可以创建和更新。或者,您可以创建tInspect
一个子任务,以便具有列表、查看、更新和创建权限tManage
的用户,但通常您只需为他的角色分配这两个任务。tManage