/**
* @param $pageid
* @param $title
- * @param $rc RecentChange
+ * @param $rc RecentChange (optional)
* @return bool|String
*/
- public static function getPatrolToken( $pageid, $title, $rc ) {
+ public static function getPatrolToken( $pageid, $title, $rc = null ) {
global $wgUser;
- if ( !$wgUser->useRCPatrol() && ( !$wgUser->useNPPatrol() ||
- $rc->getAttribute( 'rc_type' ) != RC_NEW ) )
- {
- return false;
+
+ $validTokenUser = false;
+
+ if ( $rc ) {
+ if ( ( $wgUser->useRCPatrol() && $rc->getAttribute( 'rc_type' ) == RC_EDIT ) ||
+ ( $wgUser->useNPPatrol() && $rc->getAttribute( 'rc_type' ) == RC_NEW ) )
+ {
+ $validTokenUser = true;
+ }
+ } else {
+ if ( $wgUser->useRCPatrol() || $wgUser->useNPPatrol() ) {
+ $validTokenUser = true;
+ }
}
- // The patrol token is always the same, let's exploit that
- static $cachedPatrolToken = null;
- if ( is_null( $cachedPatrolToken ) ) {
- $cachedPatrolToken = $wgUser->getEditToken( 'patrol' );
+ if ( $validTokenUser ) {
+ // The patrol token is always the same, let's exploit that
+ static $cachedPatrolToken = null;
+ if ( is_null( $cachedPatrolToken ) ) {
+ $cachedPatrolToken = $wgUser->getEditToken( 'patrol' );
+ }
+ return $cachedPatrolToken;
+ } else {
+ return false;
}
- return $cachedPatrolToken;
}
/**
/* Build our basic query. Namely, something along the lines of:
* SELECT * FROM recentchanges WHERE rc_timestamp > $start
* AND rc_timestamp < $end AND rc_namespace = $namespace
- * AND rc_deleted = '0'
+ * AND rc_deleted = 0
*/
$this->addTables( 'recentchanges' );
$index = array( 'recentchanges' => 'rc_timestamp' ); // May change