API:限制API使用
本页是MediaWiki Action API帮助文档的一部份。 |
有幾種方法可以限制某些特定的使用者群組使用(某些部分的)API,或完全停用它。
其中的某些需要修改用户权限。
禁用模块
您可以在LocalSettings.php
中添加一行來对所有用户禁用各個別的模块。
究竟要添加什么要取决于禁用的模块类型:
- 对于
action=
模块,应添加$wgAPIModules ['modulename'] = 'ApiDisabled';
。 - 对于
prop=
模块,应添加$wgAPIPropModules ['modulename'] = 'ApiQueryDisabled';
。 - 对于
list=
模块,应添加$wgAPIListModules ['modulename'] = 'ApiQueryDisabled';
。 - 对于
meta=
模块,应添加$wgAPIMetaModules ['modulename'] = 'ApiQueryDisabled';
。
示例
使用action=edit
來禁止任何一個用户:
$wgAPIModules['edit'] = 'ApiDisabled';
要限制API操作的访问权限,为ApiCheckCanExecute 添加下面的钩子:
static function onApiCheckCanExecute( $module, $user, &$message ) {
$moduleName = $module->getModuleName();
if (
$moduleName == 'action' &&
!in_array( 'right', $user->getRights() )
) {
$message = 'apierror-action-notallowed';
return false;
}
return true;
}
将'action'
, 'right'
和'apierror-action-notallowed'
替换为适当的值。