У меня были почти те же проблемы как Victor Martin (Вы видите вопросы, которые задают здесь).
У меня есть декларативная авторизация, работающая на примерно все, что не включает условные выражения использования. Например.
has_permission_on :users, :to => [:edit, :update, :destroy] do
if_attribute :user => is { current_user }
end
Есть ли какие-либо распространенные ошибки с Декларативной Авторизацией? Я использую authlogic, и я подозрителен, что 'current_user' метод в контроллере приложения мог бы быть источником проблемы.
Вам нужно добавить это в свой ApplicationController, если вы еще этого не сделали:
before_filter :set_current_user
protected
def set_current_user
Authorization.current_user = current_user
end
Тогда ваши правила будут выглядеть так:
has_permission_on :users, :to => [:edit, :update, :destroy] do
if_attribute :user => is { user }
end
Насколько мне известно, declarative_authorization не вызывает никаких методов на crontroller и не знает, что означает current_user
в вашем примере, но дает вам экземпляр Authorization.current_user
с именем user
, который вы можете использовать в своем authorization_rules.rb
файл.