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
