]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 677522: IssueEmailChangeToken() should get the old login name from the user object
authorFrédéric Buclin <LpSolit@gmail.com>
Wed, 17 Aug 2011 12:54:44 +0000 (14:54 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Wed, 17 Aug 2011 12:54:44 +0000 (14:54 +0200)
r=timello a=LpSolit

Bugzilla/Token.pm
userprefs.cgi

index c339c59842cd94fa519d67775de88a7e2ef6f0a6..86220aa29dab90d74ddb64c1e5209e719aa7815f 100644 (file)
@@ -92,8 +92,9 @@ sub issue_new_user_account_token {
 }
 
 sub IssueEmailChangeToken {
-    my ($user, $old_email, $new_email) = @_;
+    my ($user, $new_email) = @_;
     my $email_suffix = Bugzilla->params->{'emailsuffix'};
+    my $old_email = $user->login;
 
     my ($token, $token_ts) = _create_token($user->id, 'emailold', $old_email . ":" . $new_email);
 
@@ -447,7 +448,7 @@ Bugzilla::Token - Provides different routines to manage tokens.
     use Bugzilla::Token;
 
     Bugzilla::Token::issue_new_user_account_token($login_name);
-    Bugzilla::Token::IssueEmailChangeToken($user, $old_email, $new_email);
+    Bugzilla::Token::IssueEmailChangeToken($user, $new_email);
     Bugzilla::Token::IssuePasswordToken($user);
     Bugzilla::Token::DeletePasswordTokens($user_id, $reason);
     Bugzilla::Token::Cancel($token, $cancelaction, $vars);
@@ -478,7 +479,7 @@ Bugzilla::Token - Provides different routines to manage tokens.
  Returns:     Nothing. It throws an error if the same user made the same
               request in the last few minutes.
 
-=item C<sub IssueEmailChangeToken($user, $old_email, $new_email)>
+=item C<sub IssueEmailChangeToken($user, $new_email)>
 
  Description: Sends two distinct tokens per email to the old and new email
               addresses to confirm the email address change for the given
@@ -486,7 +487,6 @@ Bugzilla::Token - Provides different routines to manage tokens.
 
  Params:      $user      - User object of the user requesting a new
                            email address.
-              $old_email - The current (old) email address of the user.
               $new_email - The new email address of the user.
 
  Returns:     Nothing.
index f411326a241b7ba1f16d9c4ae0ed069ddb939cfb..94fe1def2840e4843f212ce2add7208033746966 100755 (executable)
@@ -84,8 +84,6 @@ sub SaveAccount {
     my $oldpassword = $cgi->param('old_password');
     my $pwd1 = $cgi->param('new_password1');
     my $pwd2 = $cgi->param('new_password2');
-
-    my $old_login_name = $user->login;
     my $new_login_name = trim($cgi->param('new_login_name'));
 
     if ($user->authorizer->can_change_password
@@ -119,7 +117,7 @@ sub SaveAccount {
         && Bugzilla->params->{"allowemailchange"}
         && $new_login_name)
     {
-        if ($old_login_name ne $new_login_name) {
+        if ($user->login ne $new_login_name) {
             $oldpassword || ThrowUserError("old_password_required");
 
             # Block multiple email changes for the same user.
@@ -133,8 +131,7 @@ sub SaveAccount {
             is_available_username($new_login_name)
               || ThrowUserError("account_exists", {email => $new_login_name});
 
-            Bugzilla::Token::IssueEmailChangeToken($user, $old_login_name,
-                                                   $new_login_name);
+            Bugzilla::Token::IssueEmailChangeToken($user, $new_login_name);
 
             $vars->{'email_changes_saved'} = 1;
         }