如何在命名空间的Web应用程序上使用CanCan管理权限?

时间:2013-05-30 08:17:39

标签: ruby-on-rails-3 devise cancan role rbac

我在Rails 3 Web应用程序上设置权限时遇到一些问题。我目前使用Devise和CanCan。我有一个用户模型,由Devise使用。角色是管理员,经理和用户。

我的解决方案使用命名空间来分隔管理面板。

Root (frontend)
 - static pages
Manager
 - administration pages for "manager" roled users.
Backend
 - administration pages for "admin" roled users.

我阅读了文档和一些教程,但我可以使它工作。我的问题是,CanCan可以检查用户试图在模型上执行的操作的能力。

因此,如果用户被记录为经理并且必须管理他自己的帖子,他可以通过继续/经理/帖子来完成。但问题是他也可以进入/后端/发布目录,并可以索引他不是所有者的帖子。

出现此问题是因为能力类告诉经理可以索引Post模型,但经理和管理员都在使用Post模型。

有没有办法指定允许用户访问的命名空间?

我看到有很多方法可以使用命名空间模型(Backend :: Posts Manager :: Posts,使用不同的表格)......

使用Devise和CanCan管理角色在相同模型上工作的命名空间应用程序的权限的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:1)