1

我使用devise进行身份验证,并为每个用户分配一个角色。我还有一个模型posts其中包含帖子数量。我想限制角色employee的一个用户查看特定帖子和同一用户以查看和创建不同的帖子。我怎样才能做到这一点?具有相同角色的用户如何以不同的权限访问不同的帖子?

+0

结帐惨惨:) https://github.com/ryanb/cancan – Novae

+0

我一直在使用康康舞已经分配给用户的角色,但我想问的是有些不同。 – logesh

+0

那么你能否详细阐述一下你想达到的目标? – Novae

回答

2

我知道我迟到了这里的战斗能力。

你在找什么是基于角色的访问控制的扩展。 RBAC无法满足您的场景。您需要考虑基于属性的访问控制。 CanCan和Devise是针对基于属性的访问控制的两种语言特定框架。

如果您想要更广泛的,更通用的ABAC解决方案,那么可以考虑XACML--可扩展访问控制标记语言,它是OASIS定义的标准,就像SAML一样。

XACML为您提供:

  • 基于属性的访问控制:属性可以用来描述几乎任何东西(用户,对象,资源,背景,时间,动作...)。
  • 基于策略的访问控制:策略将特性集中在一起以定义授权。例如员工可以查看同一团队中员工的帖子,并可以编辑他们自己的帖子
  • 细粒度的访问:它是可以定义非常具体和精细授权策略的职责分离
  • 支持
  • 与语言无关的授权:它的工作原理为Java,.NET,Ruby的,Python和更多。 ..
  • 集中的策略管理

下面是一些相关资源,以了解更多:

相关问题