【发布时间】:2014-07-25 11:42:10
【问题描述】:
我有一个(相对)大的 Rails 应用程序,它使用声明式授权来获得基于角色的权限。管理员用户目前拥有以下权限:
role :administrator do
has_omnipotence
end
我需要添加一个更高的角色(root),它可以独占某些操作的权限。
显而易见的做法是从管理员角色块中去掉 has_omnipotence 并手动添加除 root_accounts 之外的所有控制器的所有权限,但这很痛苦。有没有办法让我做类似以下的事情?
role :root do
has_permission_on [:root_accounts], :to => [:new, :create ... ]
end
role :administrator do
has_omnipotence {except [:root_accounts], :to => [:new, :create ...]}
end
【问题讨论】:
标签: ruby-on-rails-3 declarative-authorization