Декларативная авторизация и if_attribute, не работающий

У меня были почти те же проблемы как Victor Martin (Вы видите вопросы, которые задают здесь).

У меня есть декларативная авторизация, работающая на примерно все, что не включает условные выражения использования. Например.

has_permission_on :users, :to => [:edit, :update, :destroy] do
if_attribute :user => is { current_user }
end

Есть ли какие-либо распространенные ошибки с Декларативной Авторизацией? Я использую authlogic, и я подозрителен, что 'current_user' метод в контроллере приложения мог бы быть источником проблемы.

5
задан Community 23 May 2017 в 12:04
поделиться

1 ответ

Вам нужно добавить это в свой 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 файл.

1
ответ дан 14 December 2019 в 19:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: