Revert "Rollback: Make update of recentchanges table later"
authorUmherirrender <umherirrender_de.wp@web.de>
Thu, 6 Mar 2014 20:25:59 +0000 (21:25 +0100)
committerumherirrender <umherirrender_de.wp@web.de>
Thu, 6 Mar 2014 20:25:59 +0000 (21:25 +0100)
The automatic patrolling on a already rolled rollback should be kept,
see bug 62157.

Bug: 62157
This reverts commit e6980c32f11a9ed3ed1bf7068d5ff569cb43b457.

Change-Id: I3b626452a0bab11e8b2a12545976cbd1df92ae1f

includes/WikiPage.php

index 3de0475..77a5479 100644 (file)
@@ -2945,6 +2945,29 @@ class WikiPage implements Page, IDBAccessObject {
                        return array( array( 'notvisiblerev' ) );
                }
 
+               // Set patrolling and bot flag on the edits, which gets rollbacked.
+               // This is done before the rollback edit to have patrolling also on failure (bug 62157).
+               $set = array();
+               if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
+                       // Mark all reverted edits as bot
+                       $set['rc_bot'] = 1;
+               }
+
+               if ( $wgUseRCPatrol ) {
+                       // Mark all reverted edits as patrolled
+                       $set['rc_patrolled'] = 1;
+               }
+
+               if ( count( $set ) ) {
+                       $dbw->update( 'recentchanges', $set,
+                               array( /* WHERE */
+                                       'rc_cur_id' => $current->getPage(),
+                                       'rc_user_text' => $current->getUserText(),
+                                       'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
+                               ), __METHOD__
+                       );
+               }
+
                // Generate the edit summary if necessary
                $target = Revision::newFromId( $s->rev_id );
                if ( empty( $summary ) ) {
@@ -3001,27 +3024,6 @@ class WikiPage implements Page, IDBAccessObject {
                        ) );
                }
 
-               $set = array();
-               if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
-                       // Mark all reverted edits as bot
-                       $set['rc_bot'] = 1;
-               }
-
-               if ( $wgUseRCPatrol ) {
-                       // Mark all reverted edits as patrolled
-                       $set['rc_patrolled'] = 1;
-               }
-
-               if ( count( $set ) ) {
-                       $dbw->update( 'recentchanges', $set,
-                               array( /* WHERE */
-                                       'rc_cur_id' => $current->getPage(),
-                                       'rc_user_text' => $current->getUserText(),
-                                       'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
-                               ), __METHOD__
-                       );
-               }
-
                $revId = $status->value['revision']->getId();
 
                wfRunHooks( 'ArticleRollbackComplete', array( $this, $guser, $target, $current ) );