From: Eric Davis Date: Sun, 20 Jun 2010 21:40:55 +0000 (+0000) Subject: Refactor and documentation for User#find_by_login. X-Git-Tag: 1.0.0~35 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=6cb4ff7d89817a512a49bffd5fe3aa465f590ff4;p=redmine.git Refactor and documentation for User#find_by_login. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3808 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/user.rb b/app/models/user.rb index 5d0254ee1..bbb3ff2ec 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -221,14 +221,14 @@ class User < Principal @notified_projects_ids = nil notified_projects_ids end - - # case-insensitive fall-over + + # Find a user account by matching the exact login and then a case-insensitive + # version. Exact matches will be given priority. def self.find_by_login(login) # First look for an exact match - user = find(:first, :conditions => ["login = ?", login]) + user = first(:conditions => {:login => login}) # Fail over to case-insensitive if none was found - user = find(:first, :conditions => ["LOWER(login) = ?", login.to_s.downcase]) if user.nil? - return user + user ||= first(:conditions => ["LOWER(login) = ?", login.to_s.downcase]) end def self.find_by_rss_key(key)