2009-08-18 14 views
6

Necesito poder crear una UserSession sin tener la contraseña descifrada.Cómo me suplantar a un usuario con AuthLogic

¿Cómo puedo hacer esto?

Mi solución actual es:

En user.rb

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

En user_session.rb

verify_password_method :valid_crypted_or_non_crypted_password? 

Para iniciar sesión

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

¿Hay una manera más agradable de ¿hacer esto?

+0

¿Por qué no tiene la contraseña descifrada? ¿No puede crear el usuario con una fábrica antes de esto y ser explícito sobre la contraseña? – ryanb

+0

no, en este caso me gustaría que mi administrador navegue en el sitio web pretendiendo ser un usuario diferente. o en el caso de la identificación abierta tengo el registro del usuario pero la contraseña está encriptada –

Respuesta

11

De acuerdo con the documentation puede pasar un objeto de usuario a UserSession.create.

UserSession.create(@some_user) 

No lo he probado.

+1

confirmada! funciona como un encanto Sam –

+0

, no puedo conseguir este trabajo (y el detalle aquí): http://stackoverflow.com/questions/1234920/integration-testing-with-authlogic/1332275#1332275 cualquier pensamiento en cómo conseguiste el tuyo trabajando son muy apreciados! – kareem

Cuestiones relacionadas