X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/b705af948bc863ba37a49d6e33e868f5a63f65d3..293265a00b468b9d69a261fc6029922c4d1848c8:/app/models/user.rb diff --git a/app/models/user.rb b/app/models/user.rb index 56c8890b5..08325d5b9 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -47,9 +47,18 @@ class User < ActiveRecord::Base def self.authenticate(options) if options[:username] and options[:password] user = where("email = ? OR display_name = ?", options[:username], options[:username]).first + + if user.nil? + users = where("LOWER(email) = LOWER(?) OR LOWER(display_name) = LOWER(?)", options[:username], options[:username]) + + if users.count == 1 + user = users.first + end + end + user = nil if user and user.pass_crypt != OSM::encrypt_password(options[:password], user.pass_salt) elsif options[:token] - token = UserToken.where(:token => options[:token]).preload(:user).first + token = UserToken.find_by_token(options[:token]) user = token.user if token end