https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114402

Revision: 114402
Author:   catrope
Date:     2012-03-21 20:30:02 +0000 (Wed, 21 Mar 2012)
Log Message:
-----------
Revert r112773, r112941, r112942, r113389: unreviewed revisions in FlaggedRevs.

All of these revisions are tagged with 'gerritmigration' and will be 
resubmitted into Gerrit after the Gerrit switchover. See also 
http://lists.wikimedia.org/pipermail/wikitech-l/2012-March/059124.html

Modified Paths:
--------------
    trunk/extensions/FlaggedRevs/FlaggedRevs.setup.php
    trunk/extensions/FlaggedRevs/backend/FRInclusionCache.php
    trunk/extensions/FlaggedRevs/backend/FRPageConfig.php
    trunk/extensions/FlaggedRevs/backend/FlaggedRevs.hooks.php
    trunk/extensions/FlaggedRevs/business/PageStabilityForm.php
    trunk/extensions/FlaggedRevs/business/RevisionReviewForm.php
    trunk/extensions/FlaggedRevs/frontend/FlaggedRevsLogView.php
    trunk/extensions/FlaggedRevs/frontend/RejectConfirmationFormUI.php
    
trunk/extensions/FlaggedRevs/frontend/specialpages/actions/Stabilization_body.php
    
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/QualityOversight_body.php
    
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/StablePages_body.php

Modified: trunk/extensions/FlaggedRevs/FlaggedRevs.setup.php
===================================================================
--- trunk/extensions/FlaggedRevs/FlaggedRevs.setup.php  2012-03-21 20:27:59 UTC 
(rev 114401)
+++ trunk/extensions/FlaggedRevs/FlaggedRevs.setup.php  2012-03-21 20:30:02 UTC 
(rev 114402)
@@ -211,7 +211,7 @@
 
                # ######## Other #########
                # Determine what pages can be moved and patrolled
-               $wgHooks['getUserPermissionsErrors'][] = 
'FlaggedRevsHooks::onGetUserPermissionsErrors';
+               $wgHooks['getUserPermissionsErrors'][] = 
'FlaggedRevsHooks::onUserCan';
                # Implicit autoreview rights group
                $wgHooks['AutopromoteCondition'][] = 
'FlaggedRevsHooks::checkAutoPromoteCond';
                $wgHooks['UserLoadAfterLoadFromSession'][] = 
'FlaggedRevsHooks::setSessionKey';

Modified: trunk/extensions/FlaggedRevs/backend/FRInclusionCache.php
===================================================================
--- trunk/extensions/FlaggedRevs/backend/FRInclusionCache.php   2012-03-21 
20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/backend/FRInclusionCache.php   2012-03-21 
20:30:02 UTC (rev 114402)
@@ -19,98 +19,55 @@
        ) {
                global $wgParser, $wgMemc;
                wfProfileIn( __METHOD__ );
-
+               $versions = false;
                $key = self::getCacheKey( $article->getTitle(), $rev->getId() );
-               if ( $regen === 'regen' ) {
-                       $versions = false; // skip cache
-               } elseif ( $rev->isCurrent() ) {
-                       // Check cache entry against page_touched
-                       $versions = FlaggedRevs::getMemcValue( $wgMemc->get( 
$key ), $article );
-               } else {
-                       // Old revs won't always be invalidated with 
template/file changes.
-                       // Also, we don't care if page_touched changed due to a 
direct edit.
+               if ( $regen !== 'regen' ) { // check cache
                        $versions = FlaggedRevs::getMemcValue( $wgMemc->get( 
$key ), $article, 'allowStale' );
-                       if ( is_array( $versions ) ) { // entry exists
-                               // Sanity check that the cache is reasonably up 
to date
-                               list( $templates, $files ) = $versions;
-                               if ( self::templatesStale( $templates ) || 
self::filesStale( $files ) ) {
-                                       $versions = false; // no good
-                               }
-                       }
                }
-
                if ( !is_array( $versions ) ) { // cache miss
                        $pOut = false;
                        if ( $rev->isCurrent() ) {
                                $parserCache = ParserCache::singleton();
-                               # Try current version parser cache for this 
user...
+                               # Try current version parser cache (as anon)...
                                $pOut = $parserCache->get( $article, 
$article->makeParserOptions( $user ) );
-                               if ( $pOut == false ) {
-                                       # Try current version parser cache for 
the revision author...
-                                       $optsUser = $rev->getUser()
-                                               ? User::newFromId( 
$rev->getUser() )
-                                               : 'canonical';
-                                       $pOut = $parserCache->get( $article, 
$article->makeParserOptions( $optsUser ) );
+                               if ( $pOut == false && $rev->getUser() ) { // 
try the user who saved the change
+                                       $author = User::newFromId( 
$rev->getUser() );
+                                       $pOut = $parserCache->get( $article, 
$article->makeParserOptions( $author ) );
                                }
                        }
                        // ParserOutput::mImageTimeKeys wasn't always there
                        if ( $pOut == false || 
!FlaggedRevs::parserOutputIsVersioned( $pOut ) ) {
+                               $title = $article->getTitle();
+                               $pOpts = ParserOptions::newFromUser( $user ); 
// Note: tidy off
                                $pOut = $wgParser->parse(
-                                       $rev->getText(),
-                                       $article->getTitle(), 
-                                       ParserOptions::newFromUser( $user ), // 
Note: tidy off
-                                       true, 
-                                       true, 
-                                       $rev->getId() 
-                               );
+                                       $rev->getText(), $title, $pOpts, true, 
true, $rev->getId() );
                        }
                        # Get the template/file versions used...
                        $versions = array( $pOut->getTemplateIds(), 
$pOut->getFileSearchOptions() );
                        # Save to cache (check cache expiry for dynamic 
elements)...
                        $data = FlaggedRevs::makeMemcObj( $versions );
                        $wgMemc->set( $key, $data, $pOut->getCacheExpiry() );
-               }
-
-               wfProfileOut( __METHOD__ );
-               return $versions;
-       }
-
-       protected static function templatesStale( array $tVersions ) {
-               # Do a link batch query for page_latest...
-               $lb = new LinkBatch();
-               foreach ( $tVersions as $ns => $tmps ) {
-                       foreach ( $tmps as $dbKey => $revIdDraft ) {
-                               $lb->add( $ns, $dbKey );
-                       }
-               }
-               $lb->execute();
-               # Check if any of these templates have a newer version
-               foreach ( $tVersions as $ns => $tmps ) {
-                       foreach ( $tmps as $dbKey => $revIdDraft ) {
-                               $title = Title::makeTitle( $ns, $dbKey );
-                               if ( $revIdDraft != $title->getLatestRevID() ) {
-                                       return true;
+               } else {
+                       $tVersions =& $versions[0]; // templates
+                       # Do a link batch query for page_latest...
+                       $lb = new LinkBatch();
+                       foreach ( $tVersions as $ns => $tmps ) {
+                               foreach ( $tmps as $dbKey => $revIdDraft ) {
+                                       $lb->add( $ns, $dbKey );
                                }
                        }
-               }
-               return false;
-       }
-
-       protected static function filesStale( array $fVersions ) {
-               # Check if any of these files have a newer version
-               foreach ( $fVersions as $name => $timeAndSHA1 ) {
-                       $file = wfFindFile( $name );
-                       if ( $file ) {
-                               if ( $file->getTimestamp() != 
$timeAndSHA1['time'] ) {
-                                       return true;
+                       $lb->execute();
+                       # Update array with the current page_latest values.
+                       # This kludge is there since $newTemplates (thus 
$revIdDraft) is cached.
+                       foreach ( $tVersions as $ns => &$tmps ) {
+                               foreach ( $tmps as $dbKey => &$revIdDraft ) {
+                                       $title = Title::makeTitle( $ns, $dbKey 
);
+                                       $revIdDraft = 
(int)$title->getLatestRevID();
                                }
-                       } else {
-                               if ( $timeAndSHA1['time'] ) {
-                                       return true;
-                               }
                        }
                }
-               return false;
+               wfProfileOut( __METHOD__ );
+               return $versions;
        }
 
        /**

Modified: trunk/extensions/FlaggedRevs/backend/FRPageConfig.php
===================================================================
--- trunk/extensions/FlaggedRevs/backend/FRPageConfig.php       2012-03-21 
20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/backend/FRPageConfig.php       2012-03-21 
20:30:02 UTC (rev 114402)
@@ -32,7 +32,8 @@
         */
        public static function getVisibilitySettingsFromRow( $row ) {
                if ( $row ) {
-                       $expiry = wfGetDB( DB_SLAVE )->decodeExpiry( 
$row->fpc_expiry );
+                       # This code should be refactored, now that it's being 
used more generally.
+                       $expiry = Block::decodeExpiry( $row->fpc_expiry );
                        # Only apply the settings if they haven't expired
                        if ( !$expiry || $expiry < wfTimestampNow() ) {
                                $row = null; // expired
@@ -48,7 +49,7 @@
                        $config = array(
                                'override'   => $row->fpc_override ? 1 : 0,
                                'autoreview' => $level,
-                               'expiry'         => $expiry // TS_MW
+                               'expiry'         => Block::decodeExpiry( 
$row->fpc_expiry ) // TS_MW
                        );
                        # If there are protection levels defined check if this 
is valid...
                        if ( FlaggedRevs::useProtectionLevels() ) {
@@ -95,7 +96,7 @@
                        $changed = ( $dbw->affectedRows() != 0 ); // did this 
do anything?
                # Otherwise, add/replace row if we are not just setting it to 
the site default
                } else {
-                       $dbExpiry = $dbw->encodeExpiry( $config['expiry'] );
+                       $dbExpiry = Block::encodeExpiry( $config['expiry'], 
$dbw );
                        # Get current config...
                        $oldRow = $dbw->selectRow( 'flaggedpage_config',
                                array( 'fpc_override', 'fpc_level', 
'fpc_expiry' ),

Modified: trunk/extensions/FlaggedRevs/backend/FlaggedRevs.hooks.php
===================================================================
--- trunk/extensions/FlaggedRevs/backend/FlaggedRevs.hooks.php  2012-03-21 
20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/backend/FlaggedRevs.hooks.php  2012-03-21 
20:30:02 UTC (rev 114402)
@@ -295,7 +295,7 @@
        /**
         * Check page move and patrol permissions for FlaggedRevs
         */
-       public static function onGetUserPermissionsErrors( Title $title, $user, 
$action, &$result ) {
+       public static function onUserCan( Title $title, $user, $action, 
&$result ) {
                if ( $result === false ) {
                        return true; // nothing to do
                }
@@ -336,20 +336,6 @@
                                $result = false;
                                return false;
                        }
-                       # Respect page protection to handle cases of "review 
wars".
-                       # If a page is restricted from editing such that a user 
cannot
-                       # edit it, then said user should not be able to review 
it.
-                       foreach ( $title->getRestrictions( 'edit' ) as $right ) 
{
-                               // Backwards compatibility, rewrite sysop -> 
protect
-                               $right = ( $right === 'sysop' ) ? 'protect' : 
$right;
-                               if ( $right != '' && !$user->isAllowed( $right 
) ) {
-                                       // 'editprotected' bypasses this 
restriction
-                                       if ( !$user->isAllowed( 'editprotected' 
) ) {
-                                               $result = false;
-                                               return false;
-                                       }
-                               }
-                       }
                }
                return true;
        }

Modified: trunk/extensions/FlaggedRevs/business/PageStabilityForm.php
===================================================================
--- trunk/extensions/FlaggedRevs/business/PageStabilityForm.php 2012-03-21 
20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/business/PageStabilityForm.php 2012-03-21 
20:30:02 UTC (rev 114402)
@@ -87,7 +87,7 @@
                        $value = $this->expirySelection;
                }
                if ( $value == 'infinite' || $value == 'indefinite' || $value 
== 'infinity' ) {
-                       $time = 'infinity';
+                       $time = Block::infinity();
                } else {
                        $unix = strtotime( $value );
                        # On error returns -1 for PHP <5.1 and false for PHP 
>=5.1
@@ -188,7 +188,7 @@
         */
        public function doPreloadParameters() {
                $oldConfig = $this->getOldConfig();
-               if ( $oldConfig['expiry'] == 'infinity' ) {
+               if ( $oldConfig['expiry'] == Block::infinity() ) {
                        $this->expirySelection = 'infinite'; // no settings set 
OR indefinite
                } else {
                        $this->expirySelection = 'existing'; // settings set 
and NOT indefinite
@@ -217,7 +217,7 @@
                $expiry = $this->getExpiry();
                if ( $expiry === false ) {
                        return 'stabilize_expiry_invalid';
-               } elseif ( $expiry !== 'infinity' && $expiry < wfTimestampNow() 
) {
+               } elseif ( $expiry !== Block::infinity() && $expiry < 
wfTimestampNow() ) {
                        return 'stabilize_expiry_old';
                }
                # Update the DB row with the new config...

Modified: trunk/extensions/FlaggedRevs/business/RevisionReviewForm.php
===================================================================
--- trunk/extensions/FlaggedRevs/business/RevisionReviewForm.php        
2012-03-21 20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/business/RevisionReviewForm.php        
2012-03-21 20:30:02 UTC (rev 114402)
@@ -228,7 +228,10 @@
 
        public function isAllowed() {
                // Basic permission check
-               return ( $this->page && $this->page->userCan( 'review' ) );
+               return ( $this->page
+                       && $this->page->userCan( 'review' )
+                       && $this->page->userCan( 'edit' )
+               );
        }
 
        // implicit dims for binary flag case

Modified: trunk/extensions/FlaggedRevs/frontend/FlaggedRevsLogView.php
===================================================================
--- trunk/extensions/FlaggedRevs/frontend/FlaggedRevsLogView.php        
2012-03-21 20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/frontend/FlaggedRevsLogView.php        
2012-03-21 20:30:02 UTC (rev 114402)
@@ -34,8 +34,9 @@
         * @return string
         */
        public static function stabilityLogLinks( $title, $timestamp, $params ) 
{
+               global $wgUser;
                # Add history link showing edits right before the config change
-               $hist = Linker::link(
+               $hist = $wgUser->getSkin()->link(
                        $title,
                        wfMsgHtml( 'hist' ),
                        array(),
@@ -96,7 +97,7 @@
         * Create revision, diff, and history links for log line entry
         */
        public static function reviewLogLinks( $action, $title, $params ) {
-               global $wgLang;
+               global $wgUser, $wgLang;
                $links = '';
                # Show link to page with oldid=x as well as the diff to the 
former stable rev.
                # Param format is <rev id, last stable id, rev timestamp>.
@@ -109,7 +110,7 @@
                                        ? 'review-logentry-diff2' // unreviewed
                                        : 'review-logentry-diff'; // reviewed
                                $links .= '(';
-                               $links .= Linker::linkKnown(
+                               $links .= $wgUser->getSkin()->linkKnown(
                                        $title,
                                        wfMsgHtml( $msg ),
                                        array(),
@@ -123,7 +124,7 @@
                                : $params[2];
                        $time = $wgLang->timeanddate( $ts, true );
                        $links .= ' (';
-                       $links .= Linker::linkKnown(
+                       $links .= $wgUser->getSkin()->linkKnown(
                                $title,
                                wfMsgHtml( 'review-logentry-id', $revId, $time 
),
                                array(),

Modified: trunk/extensions/FlaggedRevs/frontend/RejectConfirmationFormUI.php
===================================================================
--- trunk/extensions/FlaggedRevs/frontend/RejectConfirmationFormUI.php  
2012-03-21 20:27:59 UTC (rev 114401)
+++ trunk/extensions/FlaggedRevs/frontend/RejectConfirmationFormUI.php  
2012-03-21 20:30:02 UTC (rev 114402)
@@ -130,6 +130,7 @@
 
                $form .= '</div>';
 
+               $skin = $this->form->getUser()->getSkin();
                $reviewTitle = SpecialPage::getTitleFor( 'RevisionReview' );
                $form .= Xml::openElement( 'form',
                        array( 'method' => 'POST', 'action' => 
$reviewTitle->getFullUrl() ) );
@@ -145,7 +146,7 @@
                        'wpReason', 120, $defaultSummary, array( 'maxlength' => 
200 ) ) . "<br />";
                $form .= Html::input( 'wpSubmit', wfMsg( 
'revreview-reject-confirm' ), 'submit' );
                $form .= ' ';
-               $form .= Linker::link( $this->form->getPage(), wfMsg( 
'revreview-reject-cancel' ),
+               $form .= $skin->link( $this->form->getPage(), wfMsg( 
'revreview-reject-cancel' ),
                        array( 'onClick' => 'history.back(); return 
history.length <= 1;' ),
                        array( 'oldid' => $this->form->getRefId(), 'diff' => 
$this->form->getOldId() ) );
                $form .= Xml::closeElement( 'form' );

Modified: 
trunk/extensions/FlaggedRevs/frontend/specialpages/actions/Stabilization_body.php
===================================================================
--- 
trunk/extensions/FlaggedRevs/frontend/specialpages/actions/Stabilization_body.php
   2012-03-21 20:27:59 UTC (rev 114401)
+++ 
trunk/extensions/FlaggedRevs/frontend/specialpages/actions/Stabilization_body.php
   2012-03-21 20:30:02 UTC (rev 114402)
@@ -36,8 +36,7 @@
                        $out->showErrorPage( 'notargettitle', 'notargettext' );
                        return;
                }
-               $this->getSkin()->setRelevantTitle( $title );
-
+       
                $this->form = new PageStabilityGeneralForm( $user );
                $form = $this->form; // convenience
 
@@ -114,10 +113,10 @@
                $showProtectOptions = ( $scExpiryOptions !== '-' && 
$form->isAllowed() );
                $dropdownOptions = array(); // array of <label,value>
                # Add the current expiry as a dropdown option
-               if ( $oldConfig['expiry'] && $oldConfig['expiry'] != 'infinity' 
) {
-                       $timestamp = $this->getLanguage()->timeanddate( 
$oldConfig['expiry'] );
-                       $d = $this->getLanguage()->date( $oldConfig['expiry'] );
-                       $t = $this->getLanguage()->time( $oldConfig['expiry'] );
+               if ( $oldConfig['expiry'] && $oldConfig['expiry'] != 
Block::infinity() ) {
+                       $timestamp = $this->getLang()->timeanddate( 
$oldConfig['expiry'] );
+                       $d = $this->getLang()->date( $oldConfig['expiry'] );
+                       $t = $this->getLang()->time( $oldConfig['expiry'] );
                        $dropdownOptions[] = array(
                                wfMsg( 'protect-existing-expiry', $timestamp, 
$d, $t ), 'existing' );
                }
@@ -240,7 +239,7 @@
                                </tr>' . Xml::closeElement( 'table' ) .
                                Html::hidden( 'title', 
$this->getTitle()->getPrefixedDBKey() ) .
                                Html::hidden( 'page', $title->getPrefixedText() 
) .
-                               Html::hidden( 'wpEditToken', 
$this->getUser()->getEditToken() );
+                               Html::hidden( 'wpEditToken', 
$this->getUser()->editToken() );
                } else {
                        $s .= Xml::closeElement( 'table' );
                }

Modified: 
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/QualityOversight_body.php
===================================================================
--- 
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/QualityOversight_body.php
        2012-03-21 20:27:59 UTC (rev 114401)
+++ 
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/QualityOversight_body.php
        2012-03-21 20:30:02 UTC (rev 114402)
@@ -41,7 +41,7 @@
                }
 
                # Create a LogPager item to get the results and a LogEventsList 
item to format them...
-               $loglist = new LogEventsList( $this->getContext()->getSkin(), 
$out, 0 );
+               $loglist = new LogEventsList( $this->getUser()->getSkin(), 
$out, 0 );
                $pager = new LogPager( $loglist, 'review', $this->user, '', '', 
$conds );
 
                # Explanatory text

Modified: 
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/StablePages_body.php
===================================================================
--- 
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/StablePages_body.php 
    2012-03-21 20:27:59 UTC (rev 114401)
+++ 
trunk/extensions/FlaggedRevs/frontend/specialpages/reports/StablePages_body.php 
    2012-03-21 20:30:02 UTC (rev 114402)
@@ -153,7 +153,7 @@
                $conds['page_namespace'] = $this->namespace;
                // Be sure not to include expired items
                if( $this->indef ) {
-                       $conds['fpc_expiry'] = $this->mDb->getInfinity();
+                       $conds['fpc_expiry'] = Block::infinity();
                } else {
                        $encCutoff = $this->mDb->addQuotes( 
$this->mDb->timestamp() );
                        $conds[] = "fpc_expiry > {$encCutoff}";


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to