API: Add ApiDisabled and ApiQueryDisabled classes so individual modules can be disabled by putting $wgAPIModules['foo'] = 'ApiDisabled'; in LocalSettings.php

This commit is contained in:
Roan Kattouw 2008-09-25 20:50:50 +00:00
parent 3b86e96992
commit 008b4f7d0f
4 changed files with 148 additions and 0 deletions

View file

@ -277,6 +277,8 @@ The following extensions are migrated into MediaWiki 1.14:
rather than causing an exception
* Added uiprop=preferencestoken to meta=userinfo
* (bug 15609) Add inprop=url and inprop=readable to prop=info
* Add ApiDisabled and ApiQueryDisabled classes so individual modules can
be disabled in LocalSettings.php
=== Languages updated in 1.14 ===

View file

@ -217,6 +217,7 @@ $wgAutoloadLocalClasses = array(
'ApiBase' => 'includes/api/ApiBase.php',
'ApiBlock' => 'includes/api/ApiBlock.php',
'ApiDelete' => 'includes/api/ApiDelete.php',
'ApiDisabled' => 'includes/api/ApiDisabled.php',
'ApiEditPage' => 'includes/api/ApiEditPage.php',
'ApiEmailUser' => 'includes/api/ApiEmailUser.php',
'ApiExpandTemplates' => 'includes/api/ApiExpandTemplates.php',
@ -257,6 +258,7 @@ $wgAutoloadLocalClasses = array(
'ApiQueryCategoryMembers' => 'includes/api/ApiQueryCategoryMembers.php',
'ApiQueryContributions' => 'includes/api/ApiQueryUserContributions.php',
'ApiQueryDeletedrevs' => 'includes/api/ApiQueryDeletedrevs.php',
'ApiQueryDisabled' => 'includes/api/ApiQueryDisabled.php',
'ApiQueryExtLinksUsage' => 'includes/api/ApiQueryExtLinksUsage.php',
'ApiQueryExternalLinks' => 'includes/api/ApiQueryExternalLinks.php',
'ApiQueryGeneratorBase' => 'includes/api/ApiQueryBase.php',

View file

@ -0,0 +1,72 @@
<?php
/*
* Created on Sep 25, 2008
* API for MediaWiki 1.8+
*
* Copyright (C) 2008 Roan Kattouw <Firstname>.<Lastname>@home.nl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* http://www.gnu.org/copyleft/gpl.html
*/
if (!defined('MEDIAWIKI')) {
// Eclipse helper - will be ignored in production
require_once ("ApiBase.php");
}
/**
* API module that dies with an error immediately.
*
* Use this to disable core modules with
* $wgAPIModules['modulename'] = 'ApiDisabled';
*
* To disable submodules of action=query, use ApiQueryDisabled instead
*
* @ingroup API
*/
class ApiDisabled extends ApiBase {
public function __construct($main, $action) {
parent :: __construct($main, $action);
}
public function execute() {
$this->dieUsage("The ``{$this->getModuleName()}'' module has been disabled.", 'moduledisabled');
}
public function getAllowedParams() {
return array ();
}
public function getParamDescription() {
return array ();
}
public function getDescription() {
return array(
'This module has been disabled.'
);
}
protected function getExamples() {
return array ();
}
public function getVersion() {
return __CLASS__ . ': $Id$';
}
}

View file

@ -0,0 +1,72 @@
<?php
/*
* Created on Sep 25, 2008
* API for MediaWiki 1.8+
*
* Copyright (C) 2008 Roan Kattouw <Firstname>.<Lastname>@home.nl
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* http://www.gnu.org/copyleft/gpl.html
*/
if (!defined('MEDIAWIKI')) {
// Eclipse helper - will be ignored in production
require_once ("ApiBase.php");
}
/**
* API module that does nothing
*
* Use this to disable core modules with e.g.
* $wgAPIPropModules['modulename'] = 'ApiQueryDisabled';
*
* To disable top-level modules, use ApiDisabled instead
*
* @ingroup API
*/
class ApiQueryDisabled extends ApiQueryBase {
public function __construct($main, $action) {
parent :: __construct($main, $action);
}
public function execute() {
$this->setWarning("The ``{$this->getModuleName()}'' module has been disabled.");
}
public function getAllowedParams() {
return array ();
}
public function getParamDescription() {
return array ();
}
public function getDescription() {
return array(
'This module has been disabled.'
);
}
protected function getExamples() {
return array ();
}
public function getVersion() {
return __CLASS__ . ': $Id$';
}
}