【发布时间】:2012-06-15 03:51:43
【问题描述】:
我开始在 Yii 中使用 srbac。
可用选项:创建角色、任务和操作,然后分配: 操作到任务,任务到角色。
我的问题是: 我需要为每个操作创建一个任务吗? 因为我想将 1 个操作分配给最低用户级别,将 4 个操作分配给超级管理员。
希望我很清楚, 丹尼
【问题讨论】:
-
我不这么认为。参与 Yii 提供的 RBAC 计划并不容易:P
我开始在 Yii 中使用 srbac。
可用选项:创建角色、任务和操作,然后分配: 操作到任务,任务到角色。
我的问题是: 我需要为每个操作创建一个任务吗? 因为我想将 1 个操作分配给最低用户级别,将 4 个操作分配给超级管理员。
希望我很清楚, 丹尼
【问题讨论】:
Role、Task和Operation都是'授权项',你必须有.它们仅提供一种以树 方式组织权限的方法,然后您可以选择树的任何节点并将其分配给用户。当然,也可以为一个用户分配多个节点,无论是否为叶子。
如果您只需要设计一个非常简单的应用程序,您可以简单地创建 4 个“操作”(或任务或角色),然后根据您的标准将它们分配给用户。但树形方案推荐用于中大型应用。
【讨论】:
我想,前段时间我在 Yii 中研究 RBAC 时也有类似的问题。我认为需要明确的是操作、任务和角色的真正含义是什么。我的结论是在here 中列出的,并且是基于 Yii 项目创始人本人的一个很好的评论,发现 here。简而言之,操作是最基本的构建块(Yii RBAC 世界的原子)。开发人员(他们只是)定义这些并从中构建任务。一项任务由一个或多个操作组成。角色由任务(至少一个)构建而成。
在我的设计中,我使用任务作为基本构建块,任务的示例是“编辑自己的个人资料”、“创建文章”、“发送私人消息”等...。对我来说,将这些身份验证项分解为更精细的粒度是over-design。
另外,我认为您的应用程序的 RBAC 树不应该满足它现在面临的简单要求,而是从一开始就更加健壮。我建议设置任务和角色并将角色分配给用户。我发现这是维护网站的一种更直观的方式。
【讨论】: