Filtern von Benutzern, die sich mit Devise anmelden können

7

Ich habe eine Rails-App, die Devise zur Authentifizierung verwendet. Benutzer gehören zu Händlern und ich möchte verhindern, dass Benutzer, die zu behinderten Händlern gehören, sich anmelden können.

Gibt es eine einfache Möglichkeit,

Prost

Tristan

    
tristanm 10.11.2010, 03:55
quelle

2 Antworten

15

Alles, was ich tun musste, war, die find_for_authentication-Methode meines Benutzermodells zu überschreiben:

%Vor%
  1. Suchen Sie den Benutzer auf die übliche Weise, indem Sie super aufrufen.
  2. Ich verwende STI, also überprüfe ich, ob der Benutzer ein DealershipUser ist, und überprüfe dann, ob der Händler gelöscht wurde (acts_as_paranoid).
  3. Gibt den Benutzer zurück.

Dies ist eine sehr spezifische Lösung für mein Szenario, aber Sie könnten find_for_authentication nach Belieben überschreiben, vorausgesetzt, Sie geben den Benutzer danach zurück.

    
tristanm 15.12.2010, 20:19
quelle
4

Searching Stackoverflow.com gab mir diese Frage / Antwort: Benutzerdefinierte Authentifizierungsstrategie für Entwickler

Grundsätzlich müssen Sie eine benutzerdefinierte Authentifizierungsstrategie auf Warden-Ebene (die Devise zugrunde liegt) implementieren. Für mein Projekt habe ich Folgendes getan:

In config/initializers/devise.rb :

%Vor%

Sie können mehr über benutzerdefinierte Warden-Strategien hier lesen: Ссылка

Hoffe das hilft!

    
neezer 14.12.2010 15:39
quelle

Tags und Links