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