究竟是什么;任务“;以Yii';s RBAC?

究竟是什么;任务“;以Yii';s RBAC?,yii,rbac,Yii,Rbac,我在设计新的、相当大/复杂的站点时,正在潜入RBAC。 我试图弄清楚是创建一个任务还是简单地使用业务规则创建一个操作 现在,我已经阅读了大部分(如果不是全部的话)现有文档。当前的文档称“任务由操作组成”。wiki文章说,不同的术语只是命名约定,存在的唯一限制是结构约定——角色必须包括任务(或其他角色);任务应包括操作(或其他任务),操作是原子术语,不由其他实体进一步组成。 我还阅读了《敏捷web开发…》和《Yii食谱》中的相关章节——这两本书都没有进一步阐明这个问题(至少从我的角度来看) 让我们

我在设计新的、相当大/复杂的站点时,正在潜入RBAC。 我试图弄清楚是创建一个任务还是简单地使用业务规则创建一个操作

现在,我已经阅读了大部分(如果不是全部的话)现有文档。当前的文档称“任务由操作组成”。wiki文章说,不同的术语只是命名约定,存在的唯一限制是结构约定——角色必须包括任务(或其他角色);任务应包括操作(或其他任务),操作是原子术语,不由其他实体进一步组成。 我还阅读了《敏捷web开发…》和《Yii食谱》中的相关章节——这两本书都没有进一步阐明这个问题(至少从我的角度来看)

让我们来看我的例子,在这里我将提出这个问题。实际上,让我们使用一个类似于上面提到的大多数文档资源中演示的示例:假设我有一篇博客文章,我希望/需要它的作者能够“更新自己的文章”。现在,为什么这应该是文档资源中常见的任务,而不是具有业务规则的操作

我认为上面的问题揭示了“任务”的定义(当然是在RBAC上下文中)

请帮助我为RBAC任务提取更好的定义

编辑: 有人建议我对所提到的术语进行以下定义,这有助于以一种有用的方式对它们进行概念化。简而言之,最简单的形式是:操作是基本的构建块。他们是与开发人员一起工作的材料,而且只有他们。开发人员在操作的基础上编写任务。角色由任务组成,就像一组任务一样。角色和任务是站点管理员应该处理的-分配和撤销给用户,而不是操作。 这是查看和掌握这些实体(角色、任务和操作)的好方法。 你有其他不同概念化的选择吗?如有任何意见,将不胜感激

蒂亚!
波阿斯。

我想说的和你在问题编辑中做的一样。任务只是用户可以执行的具有共同点的操作的组合。例如,您有操作
oList
oView
oCreate
oUpdate
,这些是操作开发人员为访问控制分配给控制器操作的,其中前两个操作仅为读操作,后两个操作具有对数据的写访问权限(这是它们的共同点)。因此,您现在希望将这些任务组合到任务
tInspect
tManage
,这两个任务都包含两个操作,第一个可以列出和查看,第二个可以创建和更新。或者,您可以将
t检查
作为
t管理
的子任务,以便拥有
t管理
的用户可以列出、查看、更新和创建,但通常您只需将这两个任务都赋予其角色

如果有两个用户 1) 管理员 2) 使用者

因此,我们为更新页面设置了角色updatePost。
admin是updatePost的父级,因此admin可以更新。
用户具有updateOwnPost权限。updateOwnPost是具有bizrule的updatePost的父级。因此,如果bizrule满足他可以更新

关于角色->任务->操作的分类,它们本质上是相同的,正如您在代码中看到的,它们属于CAuthItem类。我们主要从用户的角度对它们进行不同的命名

  • 操作仅由开发人员使用,它们代表最高级的权限

  • 任务是在开发人员的操作之上构建的。它们表示RBAC管理员要使用的基本建筑单元

  • 角色由管理员建立在任务之上,可以分配给用户或用户组

以上是建议,不是要求。通常,管理员只能查看任务和角色,而开发人员只关心操作和任务

看看这个:

这两个人是同一个人吗:)