Use all registered email addresses to map Scm users to IDF users.

This commit is contained in:
Patrick Georgi 2011-02-09 16:35:50 +01:00
parent dfa223b39e
commit 38e6e4f8d3
3 changed files with 11 additions and 17 deletions

View File

@ -271,14 +271,12 @@ class IDF_Scm_Git extends IDF_Scm
if (!preg_match('/<(.*)>/', $author, $match)) { if (!preg_match('/<(.*)>/', $author, $match)) {
return null; return null;
} }
foreach (array('email', 'login') as $what) { $sql = new Pluf_SQL('login=%s', array($match[1]));
$sql = new Pluf_SQL($what.'=%s', array($match[1])); $users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen()));
$users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen())); if ($users->count() > 0) {
if ($users->count() > 0) { return $users[0];
return $users[0];
}
} }
return null; return Pluf::factory('IDF_EmailAddress')->get_user_for_email_address($match[1]);
} }
public static function getAnonymousAccessUrl($project, $commit=null) public static function getAnonymousAccessUrl($project, $commit=null)

View File

@ -67,9 +67,7 @@ class IDF_Scm_Mercurial extends IDF_Scm
if (!preg_match('/<(.*)>/', $author, $match)) { if (!preg_match('/<(.*)>/', $author, $match)) {
return null; return null;
} }
$sql = new Pluf_SQL('email=%s', array($match[1])); return Pluf::factory('IDF_EmailAddress')->get_user_for_email_address($match[1]);
$users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen()));
return ($users->count() > 0) ? $users[0] : null;
} }
public function getMainBranch() public function getMainBranch()

View File

@ -400,14 +400,12 @@ class IDF_Scm_Monotone extends IDF_Scm
if (!preg_match('/([^ ]+@[^ ]+)/', $author, $match)) { if (!preg_match('/([^ ]+@[^ ]+)/', $author, $match)) {
return null; return null;
} }
foreach (array('email', 'login') as $what) { $sql = new Pluf_SQL('login=%s', array($match[1]));
$sql = new Pluf_SQL($what.'=%s', array($match[1])); $users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen()));
$users = Pluf::factory('Pluf_User')->getList(array('filter'=>$sql->gen())); if ($users->count() > 0) {
if ($users->count() > 0) { return $users[0];
return $users[0];
}
} }
return null; return Pluf::factory('IDF_EmailAddress')->get_user_for_email_address($match[1]);
} }
/** /**