API: A cleaner implementation of r28057: this one also hides disabled modules from...
authorRoan Kattouw <catrope@users.mediawiki.org>
Mon, 3 Dec 2007 15:52:27 +0000 (15:52 +0000)
committerRoan Kattouw <catrope@users.mediawiki.org>
Mon, 3 Dec 2007 15:52:27 +0000 (15:52 +0000)
includes/api/ApiBlock.php
includes/api/ApiChangeRights.php
includes/api/ApiDelete.php
includes/api/ApiMain.php
includes/api/ApiMove.php
includes/api/ApiProtect.php
includes/api/ApiRollback.php
includes/api/ApiUnblock.php
includes/api/ApiUndelete.php

index 103a775..9899884 100644 (file)
@@ -114,7 +114,11 @@ class ApiBlock extends ApiBase {
 \r
                $this->getResult()->addValue(null, $this->getModuleName(), $res);\r
        }\r
-\r
+       \r
+       public function isEditMode() {\r
+               return true;\r
+       }\r
+       \r
        protected function getAllowedParams() {\r
                return array (\r
                        'user' => null,\r
index f9ae90d..e8138b8 100644 (file)
@@ -123,10 +123,6 @@ class ApiChangeRights extends ApiBase {
                $this->getResult()->addValue(null, $this->getModuleName(), $res);\r
        }\r
 \r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
-\r
        protected function getAllowedParams() {\r
                return array (\r
                        'user' => null,\r
index cc66fd8..74695f1 100644 (file)
@@ -136,10 +136,6 @@ class ApiDelete extends ApiBase {
                $r = array('title' => $titleObj->getPrefixedText(), 'reason' => $reason);\r
                $this->getResult()->addValue(null, $this->getModuleName(), $r);\r
        }\r
-\r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
        \r
        protected function getAllowedParams() {\r
                return array (\r
index 3cabf54..8c06b8f 100644 (file)
@@ -57,6 +57,12 @@ class ApiMain extends ApiBase {
                'expandtemplates' => 'ApiExpandTemplates',
                'render' => 'ApiRender',
                'parse' => 'ApiParse',
+               'opensearch' => 'ApiOpenSearch',
+               'feedwatchlist' => 'ApiFeedWatchlist',
+               'help' => 'ApiHelp',
+       );
+       
+       private static $WriteModules = array (
                'rollback' => 'ApiRollback',
                'delete' => 'ApiDelete',
                'undelete' => 'ApiUndelete',
@@ -64,10 +70,7 @@ class ApiMain extends ApiBase {
                'block' => 'ApiBlock',
                'unblock' => 'ApiUnblock',
                'changerights' => 'ApiChangeRights',
-               'move' => 'ApiMove',
-               'opensearch' => 'ApiOpenSearch',
-               'feedwatchlist' => 'ApiFeedWatchlist',
-               'help' => 'ApiHelp',
+               'move' => 'ApiMove'
        );
 
        /**
@@ -117,8 +120,10 @@ class ApiMain extends ApiBase {
                        }
                }
 
-               global $wgAPIModules; // extension modules
+               global $wgAPIModules, $wgEnableWriteAPI; // extension modules
                $this->mModules = $wgAPIModules + self :: $Modules;
+               if($wgEnableWriteAPI)
+                       $this->mModules += self::$WriteModules;
 
                $this->mModuleNames = array_keys($this->mModules); // todo: optimize
                $this->mFormats = self :: $Formats;
@@ -436,8 +441,7 @@ class ApiMain extends ApiBase {
         * Override the parent to generate help messages for all available modules.
         */
        public function makeHelpMsg() {
-               global $wgEnableWriteAPI;
-
+               
                $this->mPrinter->setHelp();
 
                // Use parent to make default message for the main module
@@ -447,8 +451,6 @@ class ApiMain extends ApiBase {
                $msg .= "\n\n$astriks Modules  $astriks\n\n";
                foreach( $this->mModules as $moduleName => $unused ) {
                        $module = new $this->mModules[$moduleName] ($this, $moduleName);
-                       if( !$wgEnableWriteAPI && $module->isEditMode() )
-                               continue;
                        $msg .= self::makeHelpMsgHeader($module, 'action');
                        $msg2 = $module->makeHelpMsg();
                        if ($msg2 !== false)
index 282f32c..f122a29 100644 (file)
@@ -140,10 +140,6 @@ class ApiMove extends ApiBase {
                $dbw->commit(); // Make sure all changes are really written to the DB\r
                $this->getResult()->addValue(null, $this->getModuleName(), $r);\r
        }\r
-\r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
        \r
        protected function getAllowedParams() {\r
                return array (\r
index 8205a68..e48bfe6 100644 (file)
@@ -99,10 +99,6 @@ class ApiProtect extends ApiBase {
                $this->getResult()->addValue(null, $this->getModuleName(), $res);\r
        }\r
 \r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
-       \r
        protected function getAllowedParams() {\r
                return array (\r
                        'title' => null,\r
index 39d908e..1d0e16e 100644 (file)
@@ -115,10 +115,6 @@ class ApiRollback extends ApiBase {
 \r
                $this->getResult()->addValue(null, $this->getModuleName(), $info);\r
        }\r
-\r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
        \r
        protected function getAllowedParams() {\r
                return array (\r
index c8e76d8..7b82998 100644 (file)
@@ -91,10 +91,6 @@ class ApiUnblock extends ApiBase {
                $this->getResult()->addValue(null, $this->getModuleName(), $res);\r
        }\r
 \r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
-       \r
        protected function getAllowedParams() {\r
                return array (\r
                        'id' => null,\r
index 2359f32..1e7609e 100644 (file)
@@ -88,10 +88,6 @@ class ApiUndelete extends ApiBase {
                $info['reason'] = $retval[2];\r
                $this->getResult()->addValue(null, $this->getModuleName(), $info);\r
        }\r
-\r
-       public function isEditMode() {\r
-               return true;\r
-       }\r
        \r
        protected function getAllowedParams() {\r
                return array (\r