【问题标题】:RBAC what is the recommended method for Role->Task->OperationRBAC Role->Task->Operation 的推荐方法是什么
【发布时间】:2012-06-15 03:51:43
【问题描述】:

我开始在 Yii 中使用 srbac。

可用选项:创建角色、任务和操作,然后分配: 操作到任务,任务到角色。

我的问题是: 我需要为每个操作创建一个任务吗? 因为我想将 1 个操作分配给最低用户级别,将 4 个操作分配给超级管理员。

希望我很清楚, 丹尼

【问题讨论】:

标签: php yii rbac


【解决方案1】:

RoleTaskOperation都是'授权项',你必须有.它们仅提供一种以 方式组织权限的方法,然后您可以选择树的任何节点并将其分配给用户。当然,也可以为一个用户分配多个节点,无论是否为叶子。

如果您只需要设计一个非常简单的应用程序,您可以简单地创建 4 个“操作”(或任务或角色),然后根据您的标准将它们分配给用户。但树形方案推荐用于中大型应用。

【讨论】:

  • 是的......这就是我的想法,除了我的应用程序已完成,所以我想我必须手动完成我真的需要 4 个任务,而这 4 个任务中的每一个都有 4 个操作(查看、删除、新建,edit) 并且我的一些用户不允许编辑例如...所以理论上我必须为每个用户创建一个任务...这是非常有限的
  • 一种解决方案是为用户组创建额外任务:仅具有查看权限的任务,具有除编辑之外的所有权限的任务...
【解决方案2】:

我想,前段时间我在 Yii 中研究 RBAC 时也有类似的问题。我认为需要明确的是操作、任务和角色的真正含义是什么。我的结论是在here 中列出的,并且是基于 Yii 项目创始人本人的一个很好的评论,发现 here。简而言之,操作是最基本的构建块(Yii RBAC 世界的原子)。开发人员(他们只是)定义这些并从中构建任务。一项任务由一个或多个操作组成。角色由任务(至少一个)构建而成。

在我的设计中,我使用任务作为基本构建块,任务的示例是“编辑自己的个人资料”、“创建文章”、“发送私人消息”等...。对我来说,将这些身份验证项分解为更精细的粒度是over-design

另外,我认为您的应用程序的 RBAC 树不应该满足它现在面临的简单要求,而是从一开始就更加健壮。我建议设置任务和角色并将角色分配给用户。我发现这是维护网站的一种更直观的方式。

【讨论】:

    猜你喜欢
    • 2013-03-29
    • 2010-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多