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

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

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

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

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

XACML为您提供:

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

以下是一些有趣的资源:

  • NIST RBAC模型
  • NIST ABAC模型
  • OASIS XACML网站

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

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