diff --git a/app/models/user.rb b/app/models/user.rb index 7979cbed2..32b2ee34f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -76,6 +76,7 @@ class User end def self.find_for_authentication(conditions={}) + conditions[:username] = conditions[:username].downcase if conditions[:username] =~ /^([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})$/i # email regex conditions[:email] = conditions.delete(:username) end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 464787133..6caf31645 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -242,9 +242,15 @@ describe User do end describe ".find_for_authentication" do - it "preserves case" do + before do + user + user2 + end + it 'finds a user' do User.find_for_authentication(:username => user.username).should == user - User.find_for_authentication(:username => user.username.upcase).should be_nil + end + it "does not preserve case" do + User.find_for_authentication(:username => user.username.upcase).should == user end end