Merge "Revert "Adding sanity check to Title::isRedirect().""
[lhc/web/wiklou.git] / includes / api / ApiQueryRecentChanges.php
index 0ce5b37..931af08 100644 (file)
@@ -70,24 +70,37 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
        /**
         * @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;
        }
 
        /**
@@ -131,7 +144,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                /* 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