# HG changeset patch # User Chris Cannam # Date 1423660383 0 # Node ID a0460a3d154fb25c5cda666887ee27037749af89 # Parent ae8145b28b2b9209b23b8f177eae574de085917d Toward getting the user id for a committer by name as well as login/email diff -r ae8145b28b2b -r a0460a3d154f app/models/repository.rb --- 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