声明性授权 - 如何为控制器中的所有操作设置访问权限?

时间:2012-04-14 23:01:51

标签: ruby ruby-on-rails-3 authorization declarative-authorization

我使用声明授权 gem,在我的 authorization_rules.rb 中,我有以下规则:

  role :admin do
    has_permission_on :users, :to => [manually set up all actions in this controller]
  end

是否有更优雅的方式来设置相应控制器中所有操作的访问权限?我试过这些方法

  role :admin do
    has_permission_on :users, :to => :all
  end

  role :admin do
    has_permission_on :users
  end

但没有任何作品对我有用。是否有更好的方法来设置控制器中的所有操作,而不是盲目地键入每个操作?

2 个答案:

答案 0 :(得分:0)

操作是控制器类上的公共方法。下面的代码未经测试,但应该让您入门。

c = MyController
actions = []
c.public_methods(false).each { |m| actions << m.to_sym }

role :admin do
  has_permission_on :users, :to => actions
end

答案 1 :(得分:0)

这就是我的所作所为:

has_permission_on :controller, :to => [:all]