Использование before_filter для доступа к аутентификации двух моделей - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю с приложением Rails 4. У меня есть Модель пользователей и Модель операторов (это похоже на супер администратора). Попросите контроллер сказать testcontroller, который имеет следующий фильтр для проверки подлинности пользователя.

before_filter :authenticate_user!

Теперь я должен получить доступ к этому тест-контроллеру как к оператору. (в моем случае аутентификация пользователя и оператора различна). Когда я пытаюсь получить доступ, поскольку мой сеанс будет current_operator, контроллер before_filter, который имеет autheticate_user! останавливает меня.

Я попытался добавить код удара в тестовый контроллер

before_filter :check_operator
#before_filter :authenticate_user!

private

def check_operator
if current_operator!=nil      
  :authenticate_operator!
else
  :authenticate_user!
end

конец

И все еще не может получить доступ к testcontroller как Оператор. Любые мысли мне очень помогут

1 Ответ

0 голосов
/ 27 апреля 2018

У меня могут быть некоторые идеи по этому поводу:

  • Убедитесь, что ваш контроллер не наследует другой контроллер, который вызывает authenticate_user!
  • Будьте осторожны: если вы аутентифицированы как пользователь, а не как оператор, ваш код в check_operator никогда не попадет в authenticate_user!, как вы всегда попадете в authenticate_operator!

Примечание: вы должны использовать before_action, это новый синтаксис для before_filter:)

...