Replace User::isAllowed with PermissionManager.
[lhc/web/wiklou.git] / includes / api / ApiQueryInfo.php
index 276aafb..50bd63f 100644 (file)
@@ -135,7 +135,8 @@ class ApiQueryInfo extends ApiQueryBase {
                // but that's too expensive for this purpose
                // and would break caching
                global $wgUser;
-               if ( !$wgUser->isAllowed( 'edit' ) ) {
+               if ( !MediaWikiServices::getInstance()->getPermissionManager()
+                               ->userHasRight( $wgUser, 'edit' ) ) {
                        return false;
                }
 
@@ -152,7 +153,8 @@ class ApiQueryInfo extends ApiQueryBase {
         */
        public static function getDeleteToken( $pageid, $title ) {
                global $wgUser;
-               if ( !$wgUser->isAllowed( 'delete' ) ) {
+               if ( !MediaWikiServices::getInstance()->getPermissionManager()
+                               ->userHasRight( $wgUser, 'delete' ) ) {
                        return false;
                }
 
@@ -169,7 +171,8 @@ class ApiQueryInfo extends ApiQueryBase {
         */
        public static function getProtectToken( $pageid, $title ) {
                global $wgUser;
-               if ( !$wgUser->isAllowed( 'protect' ) ) {
+               if ( !MediaWikiServices::getInstance()->getPermissionManager()
+                               ->userHasRight( $wgUser, 'protect' ) ) {
                        return false;
                }
 
@@ -186,7 +189,8 @@ class ApiQueryInfo extends ApiQueryBase {
         */
        public static function getMoveToken( $pageid, $title ) {
                global $wgUser;
-               if ( !$wgUser->isAllowed( 'move' ) ) {
+               if ( !MediaWikiServices::getInstance()->getPermissionManager()
+                               ->userHasRight( $wgUser, 'move' ) ) {
                        return false;
                }
 
@@ -203,7 +207,8 @@ class ApiQueryInfo extends ApiQueryBase {
         */
        public static function getBlockToken( $pageid, $title ) {
                global $wgUser;
-               if ( !$wgUser->isAllowed( 'block' ) ) {
+               if ( !MediaWikiServices::getInstance()->getPermissionManager()
+                               ->userHasRight( $wgUser, 'block' ) ) {
                        return false;
                }
 
@@ -409,6 +414,8 @@ class ApiQueryInfo extends ApiQueryBase {
                $pageInfo['pagelanguagehtmlcode'] = $pageLanguage->getHtmlCode();
                $pageInfo['pagelanguagedir'] = $pageLanguage->getDir();
 
+               $user = $this->getUser();
+
                if ( $titleExists ) {
                        $pageInfo['touched'] = wfTimestamp( TS_ISO_8601, $this->pageTouched[$pageid] );
                        $pageInfo['lastrevid'] = (int)$this->pageLatest[$pageid];
@@ -493,7 +500,9 @@ class ApiQueryInfo extends ApiQueryBase {
                        $pageInfo['canonicalurl'] = wfExpandUrl( $title->getFullURL(), PROTO_CANONICAL );
                }
                if ( $this->fld_readable ) {
-                       $pageInfo['readable'] = $title->userCan( 'read', $this->getUser() );
+                       $pageInfo['readable'] = $this->getPermissionManager()->userCan(
+                               'read', $user, $title
+                       );
                }
 
                if ( $this->fld_preload ) {
@@ -539,10 +548,14 @@ class ApiQueryInfo extends ApiQueryBase {
                                $this->countTestedActions++;
 
                                if ( $detailLevel === 'boolean' ) {
-                                       $pageInfo['actions'][$action] = $title->userCan( $action, $user );
+                                       $pageInfo['actions'][$action] = $this->getPermissionManager()->userCan(
+                                               $action, $user, $title
+                                       );
                                } else {
                                        $pageInfo['actions'][$action] = $errorFormatter->arrayFromStatus( $this->errorArrayToStatus(
-                                               $title->getUserPermissionsErrors( $action, $user, $rigor ),
+                                               $this->getPermissionManager()->getPermissionErrors(
+                                                       $action, $user, $title, $rigor
+                                               ),
                                                $user
                                        ) );
                                }
@@ -800,7 +813,7 @@ class ApiQueryInfo extends ApiQueryBase {
                $user = $this->getUser();
 
                if ( $user->isAnon() || count( $this->everything ) == 0
-                       || !$user->isAllowed( 'viewmywatchlist' )
+                       || !$this->getPermissionManager()->userHasRight( $user, 'viewmywatchlist' )
                ) {
                        return;
                }
@@ -835,7 +848,7 @@ class ApiQueryInfo extends ApiQueryBase {
                }
 
                $user = $this->getUser();
-               $canUnwatchedpages = $user->isAllowed( 'unwatchedpages' );
+               $canUnwatchedpages = $this->getPermissionManager()->userHasRight( $user, 'unwatchedpages' );
                $unwatchedPageThreshold = $this->getConfig()->get( 'UnwatchedPageThreshold' );
                if ( !$canUnwatchedpages && !is_int( $unwatchedPageThreshold ) ) {
                        return;
@@ -865,7 +878,7 @@ class ApiQueryInfo extends ApiQueryBase {
                $user = $this->getUser();
                $db = $this->getDB();
 
-               $canUnwatchedpages = $user->isAllowed( 'unwatchedpages' );
+               $canUnwatchedpages = $this->getPermissionManager()->userHasRight( $user, 'unwatchedpages' );
                $unwatchedPageThreshold = $this->getConfig()->get( 'UnwatchedPageThreshold' );
                if ( !$canUnwatchedpages && !is_int( $unwatchedPageThreshold ) ) {
                        return;