]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/user.rb
Hack a way to make the email and display name case insensitive for logging in, based...
[rails.git] / app / models / user.rb
index 4113662aa411e3e5c3c60b1f809f2a0d2dc3a93d..5a277c9b45b3c500cb595d9530c00bea1549a191 100644 (file)
@@ -42,7 +42,13 @@ class User < ActiveRecord::Base
 
   def self.authenticate(options)
     if options[:username] and options[:password]
-      user = find(:first, :conditions => ["email = ? OR display_name = ?", options[:username], options[:username]])
+      environment = Rails.configuration.environment
+      adapter = Rails.configuration.database_configuration[environment]["adapter"]
+      if adapter == "postgresql"
+        user = find(:first, :conditions => ["email ILIKE ? OR display_name ILIKE ?", options[:username], options[:username]])
+      else
+        user = find(:first, :conditions => ["email = ? OR display_name = ?", options[:username], options[:username]])
+      end
       user = nil if user and user.pass_crypt != OSM::encrypt_password(options[:password], user.pass_salt)
     elsif options[:token]
       token = UserToken.find(:first, :include => :user, :conditions => ["user_tokens.token = ?", options[:token]])