Rails,按模型角色管理仪表板页面的访问权限。使用设计

Rails, managing access of dashboard pages by models roles. Using devise

我正在 Rails4 上创建仪表板应用程序。我用一些数据创建了模型 Partner。我还创建了许多模型,这些模型的视图将与此 Partner 相关联。

我可以无限制地编辑所有模型的数据。现在我想创建 Admin,它将登录到我的应用程序并管理数据。 Admins 将通过控制台添加,不需要注册。

我也想把Partners变成login/register。 Partners 只能打开与其数据关联的页面并进行编辑。

这里我的问题取决于这种情况:

  1. 如何从 Admins 中删除注册元素而不影响 Partners
  2. 如何将 Partners 限制在他们自己的页面上,而 Admins 可以无处不在?
  3. AdminsPartners 在同一个仪表板上编辑数据是否是一个好方法,或者我需要为 Admins 和 [=15= 创建具有不同视图的不同控制器] 分别?

您应该能够通过使用 gem 处理授权 ( authority ) 和一个处理角色 ( rolify )

来完成您正在讨论的所有事情

https://github.com/nathanl/authority

https://github.com/RolifyCommunity/rolify

您不必创建不同的 views/controllers,但是,根据它们的不同程度,它可能是合适的。您应该能够通过使用逻辑根据您设置的权限进行切换来完成大部分逻辑。

current_user.can_edit?(page)

在授权设置中,您必须确定谁可以 edit/view/create/etc。在权威 wiki 中有一篇关于这样做的好文章。