Я использую devise и создал поле User, которое называется: active, которое является либо истинным, либо false. Я должен вручную активировать пользователя (true), прежде чем пользователь сможет войти в систему. По крайней мере, это намерение. Я пробовал это...
class SessionsController < Devise::SessionsController
# POST /resource/sign_in
def create
"resource/signin CREATE"
self.resource = warden.authenticate!(auth_options)
unless resource.active?
sign_out
redirect_to :sorry_not_active_url
return
end
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
Однако это не улавливает все места, где пользователь может войти в систему, например, когда пользователь меняет свой пароль, сайт автоматически регистрирует их автоматически после. Однако, если пользователь неактивен, я не хочу, чтобы им разрешалось входить в систему, а скорее перенаправлялось на файл sorry_not_active_url.
Что было бы лучшим способом предотвратить вход пользователя, если пользователь не активен?
Спасибо.