changeset 1532:a0460a3d154f cannam

Toward getting the user id for a committer by name as well as login/email
author Chris Cannam
date Wed, 11 Feb 2015 13:13:03 +0000
parents ae8145b28b2b
children 59e13100ea95
files app/models/repository.rb
diffstat 1 files changed, 13 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/app/models/repository.rb	Wed Feb 11 10:03:48 2015 +0000
+++ b/app/models/repository.rb	Wed Feb 11 13:13:03 2015 +0000
@@ -316,12 +316,24 @@
 
       user = nil
       c = changesets.where(:committer => committer).includes(:user).first
+      logger.info "seeking user for committer #{committer}"
       if c && c.user
         user = c.user
       elsif committer.strip =~ /^([^<]+)(<(.*)>)?$/
         username, email = $1.strip, $3
+        logger.info "username = #{username}, email = #{email}"
         u = User.find_by_login(username)
-        u ||= User.find_by_mail(email) unless email.blank?
+        if u.nil?
+          if email.blank?
+            if username.strip =~ /^([^ ]+) ([^ ]+)$/
+              first, last = $1, $2
+              logger.info "first = #{username}, last = #{email}"
+              u = User.where(:firstname => first, :lastname => last)
+            end
+          else
+            u = User.find_by_mail(email)
+          end
+        end
         user = u
       end
       @found_committer_users[committer] = user