]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 555829: Refactor userprefs.cgi to use Bugzilla::User everywhere possible
authorKoosha Khajeh Moogahi <koosha.khajeh@gmail.com>
Mon, 28 May 2012 12:16:25 +0000 (14:16 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Mon, 28 May 2012 12:16:25 +0000 (14:16 +0200)
r/a=LpSolit

userprefs.cgi

index e527b148946ab03e0e016b16750f5a5fe296cace..1b63474568ade42eaf80fff151e49a584519ef5d 100755 (executable)
@@ -32,8 +32,7 @@ sub DoAccount {
     my $dbh = Bugzilla->dbh;
     my $user = Bugzilla->user;
 
-    ($vars->{'realname'}) = $dbh->selectrow_array(
-        "SELECT realname FROM profiles WHERE userid = ?", undef, $user->id);
+    $vars->{'realname'} = $user->name;
 
     if (Bugzilla->params->{'allowemailchange'}
         && $user->authorizer->can_change_email)
@@ -64,6 +63,9 @@ sub DoAccount {
 sub SaveAccount {
     my $cgi = Bugzilla->cgi;
     my $dbh = Bugzilla->dbh;
+    
+    $dbh->bz_start_transaction;
+
     my $user = Bugzilla->user;
 
     my $oldpassword = $cgi->param('old_password');
@@ -86,12 +88,7 @@ sub SaveAccount {
             validate_password($pwd1, $pwd2);
 
             if ($oldpassword ne $pwd1) {
-                my $cryptedpassword = bz_crypt($pwd1);
-                $dbh->do(q{UPDATE profiles
-                              SET cryptpassword = ?
-                            WHERE userid = ?},
-                         undef, ($cryptedpassword, $user->id));
-
+                $user->set_password($pwd1);
                 # Invalidate all logins except for the current one
                 Bugzilla->logout(LOGOUT_KEEP_CURRENT);
             }
@@ -121,10 +118,9 @@ sub SaveAccount {
         }
     }
 
-    my $realname = trim($cgi->param('realname'));
-    trick_taint($realname); # Only used in a placeholder
-    $dbh->do("UPDATE profiles SET realname = ? WHERE userid = ?",
-             undef, ($realname, $user->id));
+    $user->set_name($cgi->param('realname'));
+    $user->update({ keep_session => 1, keep_tokens => 1 });
+    $dbh->bz_commit_transaction;
 }