具有相同角色的用户如何访问具有不同权限的不同帖子?

时间:2012-10-19 10:24:47

标签: ruby-on-rails ruby-on-rails-3 authorization roles access-control

我使用设计进行身份验证,并为每个用户分配了一个角色。我还有一个模型posts,其中包含多个帖子。我想限制角色employee的一个用户查看特定帖子和同一用户以查看和创建不同的帖子。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

我意识到我在这里的战斗已经迟到了。

您正在寻找的是基于角色的访问控制的扩展。 RBAC无法很好地满足您的需求。您需要考虑基于属性的访问控制。 CanCan和Devise是两种特定于语言的框架,可以解决基于属性的访问控制问题。

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

XACML为您提供:

  • 基于属性的访问控制:属性可用于描述几乎任何内容(用户,对象,资源,上下文,时间,操作......)。
  • 基于策略的访问控制:策略将属性集合在一起以定义授权。例如,员工可以查看同一团队中员工的帖子,并可以编辑他们拥有的帖子
  • 细粒度访问:可以定义非常具体和细化的授权策略
  • 支持职责分离
  • 与语言无关的授权:适用于Java,.NET,Ruby,Python等......
  • 集中策略管理

以下是一些有趣的资源,可以了解更多信息:

答案 1 :(得分:0)

查看本教程,该教程指定了定义控制用户活动的逻辑的能力

https://github.com/EppO/rolify/wiki/Using-rolify-with-Devise-and-Authority