Декларативная авторизация - как установить доступ для всех действий в контроллере?

Я использую гем Declarative Authorization, и в моем 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

Но у меня ничего не работает. Есть ли лучший способ настроить все действия в контроллере, чем рабски печатать каждое действие?


person user984621    schedule 14.04.2012    source источник


Ответы (2)


Действия — это общедоступные методы класса контроллера. Код ниже не проверен, но должен помочь вам начать.

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

role :admin do
  has_permission_on :users, :to => actions
end
person chris    schedule 10.09.2012

Вот что я делаю:

has_permission_on :controller, :to => [:all]
person user2372440    schedule 11.05.2013