2009-08-18 46 views
6

用户,我需要能够创建一个UserSession而无需解密的密码。如何模拟拥有AuthLogic

我该如何去做这件事?

我目前的解决方法是:

在user.rb

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

在user_session.rb

verify_password_method :valid_crypted_or_non_crypted_password? 

登陆

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

有没有更好的办法做这个?

+0

为什么你没有解密的密码?你不能在这之前用工厂创建用户并明确密码吗? – ryanb 2009-08-18 17:01:30

+0

没了,在这种情况下,我想我的管理员浏览网站伪装成不同的用户。或者在开放ID的情况下,我有用户记录,但密码加密后 – 2009-08-18 23:04:35

回答

11

根据the documentation你可以传递一个用户对象UserSession.create

UserSession.create(@some_user) 

虽然我还没有尝试过。

+1

证实!就像一个魅力 – 2009-08-19 00:15:08

+0

山姆,我不能得到这个工作(这里的细节吧): http://stackoverflow.com/questions/1234920/integration-testing-with-authlogic/1332275#1332275 任何想法关于如何让你的工作非常感谢! – kareem 2009-08-31 21:46:32