2011-06-20 4 views
1

У меня есть контроллер, который наследуется от Devise :: RegistrationsController. Я добавил действие show к контроллеру. Проблема заключается в том, что даже тогда, когда пользователь выходит из системы, они могут получить доступ к этой акции, даже если в верхней части моего контроллера у меня есть:Devise :: RegistrationsController # show

before_filter :authenticate_user!, :except => [:new, :create]

Почему не authenticate_user! запрет доступа к моему шоу?

ответ

0

Я проверил это с одним из моего приложения. Проверка подлинности фильтра! (это человек в моем случае) хорошо работает для всех других контроллеров, но не работает для контроллера, унаследованного от Devise :: RegistrationsController. Это может быть проблемой или ограничением при разработке. Нужно добавить к обсуждению вопросов в github.

Другим обходным решением может быть создание метода фильтра should_be_logged_in? в контроллер приложения, а затем проверку на person_signed_in? помощник и перенаправление соответственно.

0

Может быть проблемой с Идентами рамкой .. попробуйте добавить следующее к вам контроллеру:

prepend_before_filter :authenticate_scope!, :only => [:edit, :update, :destroy, :show] 
+0

Неплохо. Еще доступно доступ к действию шоу. –

+0

перегрузите authenticate_user! функцию с некоторыми вызовами в Logger и посмотреть, не работает ли функция даже ... – colinross

Смежные вопросы