Jump to content

API:Restricting API usage/pt: Difference between revisions

From mediawiki.org
Content deleted Content added
Created page with "API: Restringir utilização da API"
 
Created page with "Exatamente o que adicionar depende do tipo de módulo que deseja desativar:"
 
(18 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages />
<languages />
{{API}}
{{API}}
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.
<span lang="en" dir="ltr" class="mw-content-ltr">There are several ways to restrict usage of (certain parts of) the API to certain groups of users, or to disable it altogether.</span>
<span lang="en" dir="ltr" class="mw-content-ltr">Some of these require [[Special:MyLanguage/Manual:User rights|changing group permissions]].</span>
Alguns destes requerem [[Special:MyLanguage/Manual:User rights|alterar as permissões de grupo]].


<span id="Disabling_general_access"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Disabling general access ==
== Desativar acesso geral ==
Não há permissão de utilizador dedicada para aceder à API.
</div>
Para desativar o acesso da API para um grupo de utilizadores específico, pode desativar as permissões de <code>read</code> para esse grupo.
<span lang="en" dir="ltr" class="mw-content-ltr">There is no dedicated user permission for accessing the API.</span>
Por exemplo, para não aceitar pedidos anónimos,
<span lang="en" dir="ltr" class="mw-content-ltr">To disable API access for a specific user group, you can disable <code>read</code> permissions for that group.</span>
<span lang="en" dir="ltr" class="mw-content-ltr">For instance, to disallow anonymous requests,</span>


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Line 15: Line 14:
</syntaxhighlight>
</syntaxhighlight>


Note que alguns módulos de API podem estar disponíveis independentemente.
<span lang="en" dir="ltr" class="mw-content-ltr">Note that some API modules may be available regardless.</span>
<span lang="en" dir="ltr" class="mw-content-ltr">If access is successfully prevented, the API output will usually show the error code <code>readapidenied</code>.</span>
Se o acesso for impedido com sucesso, a saída da API geralmente mostrará o código de erro <code>readapidenied</code>.


<span id="Disabling_modules"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
== Disabling modules ==
== Desativar módulos ==
Pode desativar módulos individuais para todos os utilizadores adicionando uma linha a <code>LocalSettings.php</code>.
</div>
Exatamente o que adicionar depende do tipo de módulo que deseja desativar:
<span lang="en" dir="ltr" class="mw-content-ltr">You can disable individual modules for all users by adding a line to <code>LocalSettings.php</code>.</span>
<span lang="en" dir="ltr" class="mw-content-ltr">Exactly what to add depends on the type of module you want to disable:</span>


* Para módulos de <code>action=</code>, utilize <code>{{ll|Manual:$wgAPIModules|$wgAPIModules}}['modulename'] = 'ApiDisabled';</code>
<div lang="en" dir="ltr" class="mw-content-ltr">
* For <code>action=</code> modules, use <code>{{ll|Manual:$wgAPIModules|$wgAPIModules}}['modulename'] = 'ApiDisabled';</code>
* Para módulos de <code>prop=</code>, utilize <code>{{ll|Manual:$wgAPIPropModules|$wgAPIPropModules}}['modulename'] = 'ApiQueryDisabled';</code>
* Para módulos de <code>list=</code>, utilize <code>{{ll|Manual:$wgAPIListModules|$wgAPIListModules}}['modulename'] = 'ApiQueryDisabled';</code>
</div>
* Para módulos de <code>meta=</code>, utilize <code>{{ll|Manual:$wgAPIMetaModules|$wgAPIMetaModules}}['modulename'] = 'ApiQueryDisabled';</code>
<div lang="en" dir="ltr" class="mw-content-ltr">
* For <code>prop=</code> modules, use <code>{{ll|Manual:$wgAPIPropModules|$wgAPIPropModules}}['modulename'] = 'ApiQueryDisabled';</code>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* For <code>list=</code> modules, use <code>{{ll|Manual:$wgAPIListModules|$wgAPIListModules}}['modulename'] = 'ApiQueryDisabled';</code>
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
* For <code>meta=</code> modules, use <code>{{ll|Manual:$wgAPIMetaModules|$wgAPIMetaModules}}['modulename'] = 'ApiQueryDisabled';</code>
</div>


<span id="Examples"></span>
<div lang="en" dir="ltr" class="mw-content-ltr">
=== Examples ===
=== Exemplos ===
</div>


Para desativar qualquer pessoa de utilizar <code>action=edit</code>:
<div lang="en" dir="ltr" class="mw-content-ltr">
To disable anyone from using <code>action=edit</code>:
</div>


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Line 49: Line 36:
</syntaxhighlight>
</syntaxhighlight>


Para limitar o acesso de uma ação de API, adicione o seguinte ''hook'' para {{ll|Manual:Hooks/ApiCheckCanExecute|ApiCheckCanExecute}}:
<div lang="en" dir="ltr" class="mw-content-ltr">
To limit the access of an API action, add the following hook for {{ll|Manual:Hooks/ApiCheckCanExecute|ApiCheckCanExecute}}:
</div>


<syntaxhighlight lang="php">
<syntaxhighlight lang="php">
Line 68: Line 53:
</syntaxhighlight>
</syntaxhighlight>


Substitui <code>'action'</code>, <code>'right'</code> e <code>'apierror-action-notallowed'</code> com os valores apropriados.
<div lang="en" dir="ltr" class="mw-content-ltr">
Replace <code>'action'</code>, <code>'right'</code> and <code>'apierror-action-notallowed'</code> with the appropriate values.
</div>

Latest revision as of 17:14, 11 November 2025

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.