rails декларативная авторизация, разрешить все действия для контроллера? - PullRequest
2 голосов
/ 26 декабря 2010

с использованием драгоценного камня delcarative_authorization для рельсов, есть ли ярлык, позволяющий роли получить доступ ко всем действиям контроллера?

privileges do
  # default privilege hierarchies to facilitate RESTful Rails apps
  privilege :manage, :includes => [:create, :read, :update, :delete]
end

недостаточно, потому что у меня в контроллерах больше методов, чем просто CRUD.

Что-то вроде:

  role :foo do
    has_permission_on :bar, :to =>[:all]
  end

было бы идеально, но я не могу найти его в документации.

Ответы [ 2 ]

0 голосов
/ 02 октября 2014

Я использую что-то вроде этого:

privileges do
  # default privilege hierarchies to facilitate RESTful Rails apps
  privilege :manage, :includes => [:create, :read, :update, :delete]
  method_names =  Bar.action_methods.to_a
  meths = method_names - %w{create read update delete}
  privilege :all_others, :includes => meths.map{|m| m.to_sym}
end

role :foo do
  has_permission_on :bar, :to =>[:manage,:all_others]
end

хотя что-то вроде:

privileges do
  # default privilege hierarchies to facilitate RESTful Rails apps
  privilege :manage, :includes => [:create, :read, :update, :delete]
  privilege :all, :includes => Bar.action_methods
end

role :foo do
  has_permission_on :bar, :to =>[:all]
end

может лучше соответствовать вашим требованиям

0 голосов
/ 27 декабря 2010

Я не думаю, что существует легкий путь. В этой теме обсуждается один из возможных подходов: проверить роль «хозяина» и вообще обойти фильтрацию.

...