
aaron at svn
Nov 19, 2009, 10:06 AM
Post #1 of 1
(72 views)
Permalink
|
|
SVN: [59260] trunk/extensions/FlaggedRevs
|
|
http://www.mediawiki.org/wiki/Special:Code/MediaWiki/59260 Revision: 59260 Author: aaron Date: 2009-11-19 18:06:03 +0000 (Thu, 19 Nov 2009) Log Message: ----------- * Added reviewAfterEdit(),autoReviewEdits(),autoReviewNewPages(),getTagRestrictions() * Removed redunant $frev check Modified Paths: -------------- trunk/extensions/FlaggedRevs/FlaggedArticleView.php trunk/extensions/FlaggedRevs/FlaggedRevs.class.php trunk/extensions/FlaggedRevs/FlaggedRevs.hooks.php trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php Modified: trunk/extensions/FlaggedRevs/FlaggedArticleView.php =================================================================== --- trunk/extensions/FlaggedRevs/FlaggedArticleView.php 2009-11-19 18:04:55 UTC (rev 59259) +++ trunk/extensions/FlaggedRevs/FlaggedArticleView.php 2009-11-19 18:06:03 UTC (rev 59260) @@ -635,12 +635,14 @@ # Check the newest stable version $quality = 0; if( $frev = $this->article->getStableRev() ) { - global $wgLang, $wgUser, $wgFlaggedRevsAutoReview; + global $wgLang, $wgUser; # Find out revision id $revId = $editPage->oldid ? $editPage->oldid : $this->article->getLatest(); # If this will be autoreviewed, notify the user... - if( !FlaggedRevs::lowProfileUI() && $wgFlaggedRevsAutoReview && $wgUser->isAllowed('review') ) { + if( !FlaggedRevs::lowProfileUI() && FlaggedRevs::autoReviewEdits() + && $wgUser->isAllowed('review') + ) { # If we are editing some reviewed revision, any changes this user # makes will be autoreviewed... $ofrev = FlaggedRevision::newFromTitle( $this->article->getTitle(), $revId ); @@ -1244,7 +1246,7 @@ * Only for people who can review and for pages that have a stable version. */ public function injectReviewDiffURLParams( &$sectionAnchor, &$extraQuery ) { - global $wgUser, $wgReviewChangesAfterEdit; + global $wgUser; $this->load(); # Don't show this for pages that are not reviewable if( !$this->article->isReviewable() || $this->article->getTitle()->isTalkPage() ) @@ -1255,10 +1257,11 @@ $frev = $this->article->getStableRev( FR_MASTER ); if( !$frev ) return true; + # Get latest revision Id (lag safe) $latest = $this->article->getTitle()->getLatestRevID(GAID_FOR_UPDATE); // If we are supposed to review after edit, and it was not autoreviewed, // and the user can actually make new stable version, take us to the diff... - if( $wgReviewChangesAfterEdit && $frev && $latest > $frev->getRevId() && $frev->userCanSetFlags() ) { + if( FlaggedRevs::reviewAfterEdit() && $latest > $frev->getRevId() && $frev->userCanSetFlags() ) { $extraQuery .= $extraQuery ? '&' : ''; $extraQuery .= "oldid={$frev->getRevId()}&diff=cur&diffonly=0"; // override diff-only // ...otherwise, go to the current revision after completing an edit. Modified: trunk/extensions/FlaggedRevs/FlaggedRevs.class.php =================================================================== --- trunk/extensions/FlaggedRevs/FlaggedRevs.class.php 2009-11-19 18:04:55 UTC (rev 59259) +++ trunk/extensions/FlaggedRevs/FlaggedRevs.class.php 2009-11-19 18:06:03 UTC (rev 59260) @@ -108,6 +108,34 @@ global $wgUser, $wgSimpleFlaggedRevsUI; return $wgUser->getOption( 'flaggedrevssimpleui', intval($wgSimpleFlaggedRevsUI) ); } + + /** + * Redirect users out to review changes since stable version on save? + * @returns bool + */ + public static function reviewAfterEdit() { + global $wgReviewChangesAfterEdit; + return (bool)$wgReviewChangesAfterEdit; + } + + /** + * Allow auto-review edits directly to the stable version by reviewers? + * (1 to allow auto-sighting; 2 for auto-quality; 3 for auto-pristine) + * @returns bool + */ + public static function autoReviewEdits() { + global $wgFlaggedRevsAutoReview; + return (int)$wgFlaggedRevsAutoReview; + } + + /** + * Auto-review new pages with the minimal level? + * @returns bool + */ + public static function autoReviewNewPages() { + global $wgFlaggedRevsAutoReviewNew; + return (bool)$wgFlaggedRevsAutoReviewNew; + } /** * Should pages have stable/draft tabs when not synced? @@ -250,13 +278,24 @@ } /** - * Get the array of tag dimensions + * Get the associative array of tag dimensions + * (tags => array(levels => msgkey)) * @returns array */ public static function getTags() { self::load(); return array_keys( self::$dimensions ); } + + /** + * Get the associative array of tag restrictions + * (tags => array(rights => levels)) + * @returns array + */ + public static function getTagRestrictions() { + global $wgFlagRestrictions; + return $wgFlagRestrictions; + } /** * Get the message name for a tag @@ -385,10 +424,10 @@ * @return mixed array or null */ public static function getAutoReviewTags( $quality, $config = array() ) { - global $wgFlaggedRevsAutoReview; - if( !$wgFlaggedRevsAutoReview ) return null; // shouldn't happen + if( !FlaggedRevs::autoReviewEdits() ) + return null; // shouldn't happen # Find the maximum auto-review quality level - $qal = min($wgFlaggedRevsAutoReview-1,$quality); + $qal = min(FlaggedRevs::autoReviewEdits()-1,$quality); # Pristine auto-review? if( $qal == FR_PRISTINE ) { $flags = self::quickTags( FR_PRISTINE ); @@ -746,7 +785,8 @@ $id = $rev ? $rev->getId() : null; $title = $article->getTitle(); $options = self::makeParserOptions($anon); - $currentOutput = $wgParser->parse( $text, $title, $options, /*$lineStart*/true, /*$clearState*/true, $id ); + $currentOutput = $wgParser->parse( $text, $title, $options, + /*$lineStart*/true, /*$clearState*/true, $id ); # Might as well save the cache while we're at it if( $wgEnableParserCache ) $parserCache->save( $currentOutput, $article, $anon ); Modified: trunk/extensions/FlaggedRevs/FlaggedRevs.hooks.php =================================================================== --- trunk/extensions/FlaggedRevs/FlaggedRevs.hooks.php 2009-11-19 18:04:55 UTC (rev 59259) +++ trunk/extensions/FlaggedRevs/FlaggedRevs.hooks.php 2009-11-19 18:06:03 UTC (rev 59260) @@ -165,12 +165,11 @@ * Autoreview pages moved into content NS */ public static function onTitleMoveComplete( &$otitle, &$ntitle, $user, $pageId ) { - global $wgFlaggedRevsAutoReviewNew; $fa = FlaggedArticle::getTitleInstance( $ntitle ); // Re-validate NS/config (new title may not be reviewable) if( $fa->isReviewable() ) { // Moved from non-reviewable to reviewable NS? - if( $wgFlaggedRevsAutoReviewNew && $user->isAllowed('autoreview') + if( FlaggedRevs::autoReviewNewPages() && $user->isAllowed('autoreview') && !FlaggedRevs::isPageReviewable( $otitle ) ) { $rev = Revision::newFromTitle( $ntitle ); @@ -764,7 +763,7 @@ * Also automatically review if the "review this revision" box is checked. */ public static function maybeMakeEditReviewed( $article, $rev, $baseRevId = false, $user = null ) { - global $wgFlaggedRevsAutoReview, $wgFlaggedRevsAutoReviewNew, $wgRequest; + global $wgRequest; # Must be in reviewable namespace $title = $article->getTitle(); if( !$rev || !FlaggedRevs::isPageReviewable( $title ) ) { @@ -796,7 +795,7 @@ # Get sync cache key $key = wfMemcKey( 'flaggedrevs', 'includesSynced', $rev->getPage() ); # Auto-reviewing must be enabled and user must have the required permissions - if( !$wgFlaggedRevsAutoReview || !$user->isAllowed('autoreview') ) { + if( !FlaggedRevs::autoReviewEdits() || !$user->isAllowed('autoreview') ) { $isAllowed = false; // untrusted user } else { # Get autoreview restriction settings... @@ -854,7 +853,7 @@ } // New pages if( !$prevRevId ) { - $reviewableNewPage = (bool)$wgFlaggedRevsAutoReviewNew; + $reviewableNewPage = FlaggedRevs::autoReviewNewPages(); // Edits to existing pages } elseif( $baseRevId ) { $frev = FlaggedRevision::newFromTitle( $title, $baseRevId, FR_MASTER ); @@ -1735,11 +1734,11 @@ } public static function addReviewCheck( $editPage, &$checkboxes, &$tabindex ) { - global $wgUser, $wgRequest, $wgFlaggedRevsAutoReviewNew; + global $wgUser, $wgRequest; if( !$wgUser->isAllowed('review') ) { return true; } - if( $wgFlaggedRevsAutoReviewNew && !$editPage->getArticle()->getId() ) { + if( FlaggedRevs::autoReviewNewPages() && !$editPage->getArticle()->getId() ) { return true; // not needed } $fa = FlaggedArticleView::globalArticleInstance(); Modified: trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php =================================================================== --- trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php 2009-11-19 18:04:55 UTC (rev 59259) +++ trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php 2009-11-19 18:06:03 UTC (rev 59260) @@ -767,21 +767,22 @@ * @returns bool */ public static function userCan( $tag, $value, $config = null ) { - global $wgFlagRestrictions, $wgUser; + global $wgUser; + $restrictions = FlaggedRevs::getTagRestrictions(); # Levels may not apply for some pages. # Skip this check if $config is not given. if( !is_null($config) && !self::levelAvailable($tag,$value,$config) ) { return false; } # No restrictions -> full access - if( !isset($wgFlagRestrictions[$tag]) ) + if( !isset($restrictions[$tag]) ) return true; # Validators always have full access if( $wgUser->isAllowed('validate') ) return true; # Check if this user has any right that lets him/her set # up to this particular value - foreach( $wgFlagRestrictions[$tag] as $right => $level ) { + foreach( $restrictions[$tag] as $right => $level ) { if( $value <= $level && $level > 0 && $wgUser->isAllowed($right) ) { return true; } _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS [at] lists https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs
|