Rails动态基于角色的授权插件?

时间:2010-07-21 16:12:19

标签: ruby-on-rails authorization ruby-on-rails-plugins

有很多基于角色的授权插件。当你事先知道角色将会是什么时,它们会很有效。例如,如果我知道我将拥有管理员,super_users和not_so_super_users。

我真正想要的是能够创建自定义角色并将该角色分配给用户。此时,我只是想根据用户的自定义角色阻止对控制器/操作的访问。角色将包含权限。

例如,Jane Doe可以添加和查看小部件,但她无法删除或编辑它们。 John Doe可以添加,查看和编辑。老板可以添加,查看,编辑和删除。我希望能够检查用户是否有权在一行中访问控制器/操作:

user.is_authorized?

is_authorized(或其所谓的任何内容)应足够智能,以确定用户是否根据其分配的角色和该角色的权限集进行授权。

我有道理吗?那有什么可以做到的吗?

3 个答案:

答案 0 :(得分:0)

请尝试使用插件acl9进行基于角色的应用。

acl9

答案 1 :(得分:0)

我会使用declarative_authorization,只为每个函数创建多个角色。

因此具有编辑,更新,创建,销毁小部件(4种不同角色)的特定角色。

然后只需将用户与多个角色相关联,即可重新实现轮子。

答案 2 :(得分:0)

也许尝试canard https://rubygems.org/gems/canard它使用cancan的所有动态授权并为其添加角色。我专门写了它来解决这个问题。