103 votes

Devise interdit à certains utilisateurs de se connecter

J'utilise Devise pour l'authentification dans mon application.

Comment puis-je interdire à certains utilisateurs de se connecter - pour désactiver un utilisateur?

142voto

Zabba Points 26372

Fais-le comme ça:

Créez une colonne appelée is_active pour le modèle User .

Ajoutez ensuite le code ci-dessous au modèle User :

 class User < ActiveRecord::Base
  #this method is called by devise to check for "active" state of the model
  def active_for_authentication?
    #remember to call the super
    #then put our own check to determine "active" state using 
    #our own "is_active" column
    super and self.is_active?
  end
end
 

METTRE À JOUR

Comme le note Matt Huggins, la méthode s'appelle maintenant active_for_authentication? ( Documentation )

0voto

x10 Points 2154

Vous voulez faire d'autorisation, pas d'authentification. Concevoir seulement authetication, cependant.
I. e. concevoir seulement vous indique qu'un utilisateur est bien celui qu'il dit qu'il est.
Vous avez besoin de quelque chose d'autre à lui interdire d'utiliser le site.

L'autorisation est un sujet populaire, et il ya toute une liste de pierres précieuses qui peuvent vous aider avec elle:
http://ruby-toolbox.com/categories/rails_authorization.html
Faites votre choix.

-2voto

ecoologic Points 2748

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X