Vérifier si l'utilisateur est actif avant de permettre à l'utilisateur de se connecter avec concevoir (rails)
Je suis à l'aide de concevoir et créé un champ Utilisateur appelé :active, ce qui est vrai ou faux. J'ai à effectuer manuellement l'utilisateur actif (vrai) avant que l'utilisateur est autorisé à se connecter. C'est du moins l'intention. J'ai essayé cette...
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
Toutefois, cela ne pas attraper tous les endroits où un utilisateur peut se connecter, par exemple, lorsqu'un utilisateur modifie son mot de passe, le site est automatiquement connecte automatiquement après. Toutefois, si l'utilisateur n'est pas active, je ne veux pas qu'ils être autorisés à se connecter, mais plutôt d'être redirigé vers une sorry_not_active_url.
Quelle serait la meilleure façon de prévenir l'utilisateur de se connecter si l'utilisateur n'est pas active?
Merci.
Vous devez vous connecter pour publier un commentaire.
Ajouter ces deux méthodes pour votre modèle d'utilisateur, de concevoir devraient ramasser automatiquement - vous ne devriez PAS besoin de s'étendre
Devise::SessionsController
Concevoir (Si vous avez concevoir 3.2+) prennent désormais en charge
bloc
paramètre (session) créeractive_for_authentication?
aurait été plus difficile.