API:Restricting API usage/pt

Category:MediaWiki action API/pt

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.

Category:MediaWiki action API/pt