API:Restricting API usage/pt
| Esta página faz parte da documentação da API de Ação do MediaWiki. |
Há várias maneiras para restringir a utilização da (certas partes de) API para certos grupos de utilizadores, ou para a desativar por completo. Alguns destes requerem alterar as permissões de grupo.
Desativar acesso geral
Não há permissão de utilizador dedicada para aceder à API.
Para desativar o acesso da API para um grupo de utilizadores específico, pode desativar as permissões de read para esse grupo.
Por exemplo, para não aceitar pedidos anónimos,
$wgGroupPermissions['*']['read'] = false;
Note que alguns módulos de API podem estar disponíveis independentemente.
Se o acesso for impedido com sucesso, a saída da API geralmente mostrará o código de erro readapidenied.
Desativar módulos
Pode desativar módulos individuais para todos os utilizadores adicionando uma linha a LocalSettings.php.
Exatamente o que adicionar depende do tipo de módulo que deseja desativar:
- Para módulos de
action=, utilize$wgAPIModules['modulename'] = 'ApiDisabled'; - Para módulos de
prop=, utilize$wgAPIPropModules['modulename'] = 'ApiQueryDisabled'; - Para módulos de
list=, utilize$wgAPIListModules['modulename'] = 'ApiQueryDisabled'; - Para módulos de
meta=, utilize$wgAPIMetaModules['modulename'] = 'ApiQueryDisabled';
Exemplos
Para desativar qualquer pessoa de utilizar action=edit:
$wgAPIModules['edit'] = 'ApiDisabled';
Para limitar o acesso de uma ação de API, adicione o seguinte hook para ApiCheckCanExecute:
static function onApiCheckCanExecute( $module, $user, &$message ) {
$moduleName = $module->getModuleName();
$permissionManager = MediaWikiServices::getInstance()->getPermissionManager();
if (
$moduleName == 'action' &&
!$permissionManager->userHasRight( $user, 'right' )
) {
$message = 'apierror-action-notallowed';
return false;
}
return true;
}
Substitui 'action', 'right' e 'apierror-action-notallowed' com os valores apropriados.