2009-08-18 9 views
6

Ich muss in der Lage sein, eine UserSession ohne das entschlüsselte Passwort zu erstellen.Wie authentifiziere ich einen Benutzer mit AuthLogic

Wie gehe ich dabei vor?

Meine aktuelle Problemumgehung ist:

In user.rb

def valid_crypted_or_non_crypted_password?(password) 
    valid_password?(password) || password == crypted_password 
end 

In user_session.rb

verify_password_method :valid_crypted_or_non_crypted_password? 

UserSession.create(:login => u.login, :password => u.crypted_password) 

anzumelden Gibt es eine schönere Art und Weise zu mach das?

+0

Warum haben Sie das entschlüsselte Passwort nicht? Können Sie den Benutzer nicht zuvor mit einer Factory erstellen und das Passwort explizit angeben? – ryanb

+0

Nein, in diesem Fall möchte ich, dass mein Administrator die Website durchsucht, indem er vorgibt, ein anderer Benutzer zu sein. oder im Falle einer offenen ID habe ich den Benutzer-Datensatz, aber das Passwort ist verschlüsselt –

Antwort

11

Gemäß the documentation können Sie ein Benutzerobjekt an UserSession.create übergeben.

UserSession.create(@some_user) 

Ich habe es noch nicht versucht.

+1

bestätigt! wirkt wie ein Zauber –

+0

Sam, kann ich diese Arbeit nicht bekommen (und Detail hier): http://stackoverflow.com/questions/1234920/integration-testing-with-authlogic/1332275#1332275 irgendwelche Gedanken wie du deine Arbeit bekommen hast, sind sehr geschätzt! – kareem

Verwandte Themen