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

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

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

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

user.is_authorized? 

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

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

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

acl9

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

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

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

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