декларативная проблема аутентификации с if_attribute - PullRequest
1 голос
/ 03 марта 2011

мои правила авторизации:

role :tester do
  has_permission_on [:regression_test_test_runs, :regression_test_jobs], :to => :manage
  has_permission_on [:authorization_rules], :to => [:read, :manage]
  has_permission_on [:users], :to => :edit do
    if_attribute :user => is {user}
  end
end

Контроллер моих пользователей

filter_access_to :all, :attribute_check => true

Почему мне по-прежнему отказывают в разрешении?Я попытался поиграть, и я все еще не могу получить текущего пользователя, который является тестером, чтобы редактировать его собственный профиль.

1 Ответ

0 голосов
/ 03 марта 2011

Возможно, вам нужно изменить правила авторизации на:

role :tester do
  ...
  has_permission_on [:users], :to => :edit do
    if_attribute :id => is {user.id}
  end
end

Я предполагаю, что у пользователя нет атрибута с именем user, поэтому ваш первоначальный пример не удался. Вместо этого вам придется сравнивать идентификатор пользователя с идентификатором текущего пользователя.

...