]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 889403: syncLDAP.pl does not rederive regexp groups when updating login name
authorPami Ketolainen <pami.ketolainen@jollamobile.com>
Thu, 25 Jul 2013 11:00:08 +0000 (13:00 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Thu, 25 Jul 2013 11:00:08 +0000 (13:00 +0200)
r=LpSolit a=sgreen

contrib/syncLDAP.pl

index ec0839ed5b54b67a3e75fe4be727866d10204916..6ad96477bbec769985af4a2c113215472b2698b2 100755 (executable)
@@ -240,22 +240,15 @@ if($readonly == 0) {
    
    print "Phase 2: updating existing users... " unless $quiet;
 
-   my $sth_update_login = $dbh->prepare(
-       'UPDATE profiles
-           SET login_name = ? 
-         WHERE ' . $dbh->sql_istrcmp('login_name', '?'));
-   my $sth_update_realname = $dbh->prepare(
-       'UPDATE profiles
-           SET realname = ? 
-         WHERE ' . $dbh->sql_istrcmp('login_name', '?'));
-
    if($noupdate == 0) {
       while( my ($key, $value) = each(%update_users) ) {
+        my $user = Bugzilla::User->check($key);
         if(defined $value->{'new_login_name'}) {
-          $sth_update_login->execute($value->{'new_login_name'}, $key);
+          $user->set_login($value->{'new_login_name'});
         } else {
-          $sth_update_realname->execute($value->{'realname'}, $key);
+          $user->set_name($value->{'realname'});
         }
+        $user->update();
       }
       print "done!\n" unless $quiet;
    }