Merge "Don't ask users to mark own page creations as patrolled"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 16 Sep 2013 19:22:29 +0000 (19:22 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 16 Sep 2013 19:22:29 +0000 (19:22 +0000)
1  2 
includes/diff/DifferenceEngine.php

@@@ -416,12 -416,13 +416,13 @@@ class DifferenceEngine extends ContextS
         */
        protected function markPatrolledLink() {
                global $wgUseRCPatrol, $wgEnableAPI, $wgEnableWriteAPI;
+               $user = $this->getUser();
  
                if ( $this->mMarkPatrolledLink === null ) {
                        // Prepare a change patrol link, if applicable
                        if (
                                // Is patrolling enabled and the user allowed to?
-                               $wgUseRCPatrol && $this->mNewPage->quickUserCan( 'patrol', $this->getUser() ) &&
+                               $wgUseRCPatrol && $this->mNewPage->quickUserCan( 'patrol', $user ) &&
                                // Only do this if the revision isn't more than 6 hours older
                                // than the Max RC age (6h because the RC might not be cleaned out regularly)
                                RecentChange::isInRCLifespan( $this->mNewRev->getTimestamp(), 21600 )
                                        array( 'USE INDEX' => 'rc_timestamp' )
                                );
  
-                               if ( $change ) {
+                               if ( $change && $change->getPerformer()->getName() !== $user->getName() ) {
                                        $rcid = $change->getAttribute( 'rc_id' );
                                } else {
-                                       // None found
+                                       // None found or the page has been created by the current user.
+                                       // If the user could patrol this it already would be patrolled
                                        $rcid = 0;
                                }
                                // Build the link
                                if ( $rcid ) {
                                        $this->getOutput()->preventClickjacking();
                                        if ( $wgEnableAPI && $wgEnableWriteAPI
-                                               && $this->getUser()->isAllowed( 'writeapi' )
+                                               && $user->isAllowed( 'writeapi' )
                                        ) {
                                                $this->getOutput()->addModules( 'mediawiki.page.patrol.ajax' );
                                        }
  
-                                       $token = $this->getUser()->getEditToken( $rcid );
+                                       $token = $user->getEditToken( $rcid );
                                        $this->mMarkPatrolledLink = ' <span class="patrollink">[' . Linker::linkKnown(
                                                $this->mNewPage,
                                                $this->msg( 'markaspatrolleddiff' )->escaped(),
                        $multi = $this->getMultiNotice();
                        // Display a message when the diff is empty
                        if ( $body === '' ) {
 -                              if ( $multi !== '' ) {
 -                                      $multi .= '<br />';
 -                              }
 -                              $multi .= $this->msg( 'diff-empty' )->parse();
 +                              $notice .= '<div class="mw-diff-empty">' . $this->msg( 'diff-empty' )->parse() . "</div>\n";
                        }
                        return $this->addHeader( $body, $otitle, $ntitle, $multi, $notice );
                }
                        return false;
                }
                // Short-circuit
 -              // If mOldRev is false, it means that the
                if ( $this->mOldRev === false || ( $this->mOldRev && $this->mNewRev
                        && $this->mOldRev->getID() == $this->mNewRev->getID() ) )
                {