Как настроить устройство для предотвращения входа неактивированных пользователей - PullRequest
0 голосов
/ 23 ноября 2011

Я добавил атрибут с именем активирован для моего пользователя. Если это 0, я хочу запретить вход в систему, если это 1, я хочу разрешить это. Я переопределил контроллер сессий устройства, чтобы быть таким

def create
  resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")

  set_flash_message(:notice, :signed_in) if is_navigational_format?
  if resource.activated == 0
    redirect_to root_path
    return
  end
  sign_in(resource_name, resource)
  respond_with resource, :location => after_sign_in_path_for(resource)
end

и мои маршруты такие

devise_for :users, :controllers => {:registrations => 'registrations', :sessions => 'sessions'} do
   get "/users/sign_out" => "devise/sessions#destroy", :as => :destroy_user_session
end

почему он по-прежнему разрешает вход в систему пользователям с активированным = 0. (Я предполагаю, что эта функция вызывается при входе в систему.)

1 Ответ

1 голос
/ 23 ноября 2011

Почему бы не использовать confirmable, это позволит вам иметь те же функции без написания специального кода.Документация объясняет это достаточно хорошо, и это должно иметь смысл.

Confirmable отвечает за проверку того, подтверждена ли учетная запись для входа, и за отправку электронных писем с инструкциями для подтверждения.Инструкции по подтверждению отправляются на электронную почту пользователя после создания записи и при запросе вручную новым запросом инструкции по подтверждению.

Если вы не хотите отправлять электронное письмо, есть способы его отключитьВы можете написать свой собственный метод для подтверждения и включения учетных записей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...