https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114848
Revision: 114848
Author: bsitu
Date: 2012-04-11 18:14:33 +0000 (Wed, 11 Apr 2012)
Log Message:
-----------
adding support for autopatroling
Modified Paths:
--------------
trunk/extensions/PageTriage/PageTriage.hooks.php
trunk/extensions/PageTriage/includes/PageTriage.php
Modified: trunk/extensions/PageTriage/PageTriage.hooks.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.hooks.php 2012-04-11 17:21:54 UTC
(rev 114847)
+++ trunk/extensions/PageTriage/PageTriage.hooks.php 2012-04-11 18:14:33 UTC
(rev 114848)
@@ -15,7 +15,7 @@
$pageId = $newTitle->getArticleID();
if ( $newTitle->getNamespace() === NS_MAIN ) {
- self::addToPageTriageQueue( $pageId );
+ self::addToPageTriageQueue( $pageId, $newTitle );
}
$acp = ArticleCompileProcessor::newFromPageId( array( $pageId )
);
@@ -40,7 +40,7 @@
public static function onNewRevisionFromEditComplete( $article, $rev,
$baseID, $user ) {
$prev = $rev->getPrevious();
if ( $prev && !$article->isRedirect() && $article->isRedirect(
$prev->getRawText() ) ) {
- self::addToPageTriageQueue( $article->getId() );
+ self::addToPageTriageQueue( $article->getId(),
$article->mTitle, $user );
}
return true;
}
@@ -61,7 +61,7 @@
* @return bool
*/
public static function onArticleInsertComplete( $article, $user, $text,
$summary, $isMinor, $isWatch, $section, $flags, $revision ) {
- self::addToPageTriageQueue( $article->getId() );
+ self::addToPageTriageQueue( $article->getId(),
$article->mTitle, $user );
return true;
}
@@ -111,9 +111,23 @@
/**
* Add page to page triage queue
*/
- private static function addToPageTriageQueue( $pageId ) {
+ private static function addToPageTriageQueue( $pageId, $title, $user =
null ) {
+ global $wgUser, $wgUseRCPatrol, $wgUseNPPatrol;
+
+ $user = is_null( $user ) ? $wgUser : $user;
+
+ $patrolled = ( $wgUseRCPatrol || $wgUseNPPatrol ) && !count(
+ $title->getUserPermissionsErrors(
'autopatrol', $user ) );
+
$pageTriage = new PageTriage( $pageId );
- $pageTriage->addToPageTriageQueue();
+ // Without autopatrol right, we consider the system updates the
triage status to '0' or adds a brand new
+ // record with '0' triage status to the queue, hence we should
not pass a user for logging
+ if ( $patrolled ) {
+ $pageTriage->addToPageTriageQueue( '1', $user );
+ } else {
+ $pageTriage->addToPageTriageQueue( '0' );
+ }
+
}
/**
@@ -195,9 +209,7 @@
if ( $rc ) {
$pt = new PageTriage( $rc->getAttribute( 'rc_cur_id' )
);
- if ( $pt->addToPageTriageQueue() ) {
- $pt->setTriageStatus( '1', $user, true );
- }
+ $pt->addToPageTriageQueue( '1', $user, true );
}
return true;
Modified: trunk/extensions/PageTriage/includes/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/includes/PageTriage.php 2012-04-11 17:21:54 UTC
(rev 114847)
+++ trunk/extensions/PageTriage/includes/PageTriage.php 2012-04-11 18:14:33 UTC
(rev 114848)
@@ -22,12 +22,15 @@
/**
* Add page to page triage queue
+ * @param $reviewed string '1'/'0'
+ * @param $user User
+ * @param $fromRc bool
* @return bool
*/
- public function addToPageTriageQueue() {
+ public function addToPageTriageQueue( $reviewed = '0', User $user =
null, $fromRc = false ) {
if ( $this->retrieve() ) {
- if ( $this->mReviewed ) {
- $this->setTriageStatus( '0' );
+ if ( $this->mReviewed != $reviewed ) {
+ $this->setTriageStatus( $reviewed, $user,
$fromRc );
}
return true;
}
@@ -49,12 +52,18 @@
$row = array(
'ptrp_page_id' => $this->mPageId,
- 'ptrp_reviewed' => '0',
+ 'ptrp_reviewed' => $reviewed,
'ptrp_timestamp' => $res->creation_date
);
$dbw->insert( 'pagetriage_page', $row, __METHOD__, array(
'IGNORE' ) );
+ $this->mReviewed = $reviewed;
+
+ if ( !is_null( $user ) && !$user->isAnon() ) {
+ $this->logUserTriageAction( $user );
+ }
+
return true;
}
@@ -95,7 +104,7 @@
$this->logUserTriageAction( $user );
}
$dbw->commit();
- // flush the cache so cached triage status is updated
+ // flush the cache so triage status is updated
$articleMetadata = new ArticleMetadata( array( $this->mPageId )
);
$articleMetadata->flushMetadataFromCache();
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs