]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 502682: CheckIfVotedConfirmed fails to confirm a bug if you don't have the permis...
authorlpsolit%gmail.com <>
Tue, 7 Jul 2009 11:09:57 +0000 (11:09 +0000)
committerlpsolit%gmail.com <>
Tue, 7 Jul 2009 11:09:57 +0000 (11:09 +0000)
Bugzilla/Bug.pm

index a2db3572abed0cdc5438db76bad43c673296b306..dbb88be6a16c2da6cba742243a3c429b6c89be27 100644 (file)
@@ -3373,11 +3373,17 @@ sub CheckIfVotedConfirmed {
             }
             ThrowCodeError('no_open_bug_status') unless $new_status;
 
-            $bug->set_status($new_status);
+            # We cannot call $bug->set_status() here, because a user without
+            # canconfirm privs should still be able to confirm a bug by
+            # popular vote. We already know the new status is valid, so it's safe.
+            $bug->{bug_status} = $new_status;
+            $bug->{everconfirmed} = 1;
+            delete $bug->{'status'}; # Contains the status object.
         }
         else {
             # If the bug is in a closed state, only set everconfirmed to 1.
-            $bug->_set_everconfirmed(1);
+            # Do not call $bug->_set_everconfirmed(), for the same reason as above.
+            $bug->{everconfirmed} = 1;
         }
         $bug->update();