API:Restricting API usage/es: Difference between revisions
Updating to match new version of source page |
Updating to match new version of source page |
||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 4: | Line 4: | ||
Algunos de estos requieren [[Special:MyLanguage/Manual:User rights|cambiar los permisos de grupo]]. |
Algunos de estos requieren [[Special:MyLanguage/Manual:User rights|cambiar los permisos de grupo]]. |
||
<div lang="en" dir="ltr" class="mw-content-ltr"> |
|||
{{anchor|Disabling the entire API}} |
|||
== |
== Disabling general access == |
||
</div> |
|||
Puedes deshabilitar la API en su conjunto configurando <code class="mw-highlight">{{ll|Manual:$wgEnableAPI|$wgEnableAPI}} = {{#tag:span|false|class=k}};</code> en {{ll|Manual:LocalSettings.php|LocalSettings.php}}. |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">There is no dedicated user permission for accessing the API.</span> |
|||
La API está habilitada por defecto. |
|||
<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"> |
|||
{{note|1=Este ajuste de configuración se desactivó a partir de MediaWiki 1.31.0 y se eliminará en futuras versiones, lo que significa que ya no será posible deshabilitar la API.}} |
|||
$wgGroupPermissions['*']['read'] = false; |
|||
</syntaxhighlight> |
|||
== Deshabilitar la API de escritura == |
|||
Puedes deshabilitar todos [[Special:MyLanguage/API:Changing wiki content|escribir módulos]] configurando <code class="mw-highlight">{{ll|Manual:$wgEnableWriteAPI|$wgEnableWriteAPI}} = {{#tag:span|false|class=k}};</code> en LocalSettings.php. |
|||
La API de escritura está habilitada por defecto a partir de MediaWiki 1.14, y está deshabilitada por defecto en las versiones anteriores. |
|||
{{note|1=Este ajuste de configuración se desactivó a partir de MediaWiki 1.31.0 y se eliminará en futuras versiones, lo que significa que ya no será posible deshabilitar la API de escritura.}} |
|||
<span lang="en" dir="ltr" class="mw-content-ltr">Note that some API modules may be available regardless.</span> |
|||
== Restringiendo el acceso a la API de escritura == |
|||
<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> |
|||
Puedes denegar a ciertos grupos el derecho a usar la API de escritura negándoles el derecho writeapi. |
|||
Por defecto, todos los grupos tienen el derecho writeapi. |
|||
Sin embargo, se requieren ambos, el writeapi correcto y <syntaxhighlight lang=php inline>$wgEnableWriteAPI = true;</syntaxhighlight> para usar la API de escritura. |
|||
<span id="Disabling_modules"></span> |
|||
== Deshabilitar módulos == |
== Deshabilitar módulos == |
||
Puedes deshabilitar módulos individuales para todos los usuarios agregando una línea a LocalSettings.php. |
Puedes deshabilitar módulos individuales para todos los usuarios agregando una línea a <code>LocalSettings.php</code>. |
||
Exactamente qué añadir, depende del tipo de módulo que desee deshabilitar: |
Exactamente qué añadir, depende del tipo de módulo que desee deshabilitar: |
||
| Line 31: | Line 28: | ||
* Para módulos <code>meta=</code>, use <code>{{ll|Manual:$wgAPIMetaModules|$wgAPIMetaModules}}['modulename'] = 'ApiQueryDisabled';</code> |
* Para módulos <code>meta=</code>, use <code>{{ll|Manual:$wgAPIMetaModules|$wgAPIMetaModules}}['modulename'] = 'ApiQueryDisabled';</code> |
||
<span id="Examples"></span> |
|||
=== Ejemplo === |
=== Ejemplo === |
||
<div class="mw-translate-fuzzy"> |
|||
Para deshabilitar a cualquiera que no sea un sysop usando <code>action=edit</code>: |
Para deshabilitar a cualquiera que no sea un sysop usando <code>action=edit</code>: |
||
</div> |
|||
<syntaxhighlight lang="php"> |
<syntaxhighlight lang="php"> |
||
| ⚫ | |||
if ( !in_array( 'sysop', $wgUser->getGroups() ) ) { |
|||
| ⚫ | |||
} |
|||
</syntaxhighlight> |
</syntaxhighlight> |
||
| Line 46: | Line 44: | ||
static function onApiCheckCanExecute( $module, $user, &$message ) { |
static function onApiCheckCanExecute( $module, $user, &$message ) { |
||
$moduleName = $module->getModuleName(); |
$moduleName = $module->getModuleName(); |
||
$permissionManager = MediaWikiServices::getInstance()->getPermissionManager(); |
|||
if ( |
if ( |
||
$moduleName == 'action' && |
$moduleName == 'action' && |
||
! |
!$permissionManager->userHasRight( $user, 'right' ) |
||
) { |
) { |
||
$message = 'apierror-action-notallowed'; |
$message = 'apierror-action-notallowed'; |
||
Latest revision as of 11:32, 19 October 2025
| Esta página es parte de la documentación de la API de acciones de MediaWiki. |
Hay varias maneras de restringir el uso de (ciertas partes de) el API a ciertos grupos de usuarios, o deshabilitarla por completo. Algunos de estos requieren cambiar los permisos de grupo.
Disabling general access
There is no dedicated user permission for accessing the API.
To disable API access for a specific user group, you can disable read permissions for that group.
For instance, to disallow anonymous requests,
$wgGroupPermissions['*']['read'] = false;
Note that some API modules may be available regardless.
If access is successfully prevented, the API output will usually show the error code readapidenied.
Deshabilitar módulos
Puedes deshabilitar módulos individuales para todos los usuarios agregando una línea a LocalSettings.php.
Exactamente qué añadir, depende del tipo de módulo que desee deshabilitar:
- Para módulos
action=, use$wgAPIModules['modulename'] = 'ApiDisabled'; - Para módulos
prop=, use$wgAPIPropModules['modulename'] = 'ApiQueryDisabled'; - Para módulos
list=, use$wgAPIListModules['modulename'] = 'ApiQueryDisabled'; - Para módulos
meta=, use$wgAPIMetaModules['modulename'] = 'ApiQueryDisabled';
Ejemplo
Para deshabilitar a cualquiera que no sea un sysop usando action=edit:
$wgAPIModules['edit'] = 'ApiDisabled';
Para limitar el acceso de una acción de API, agrega el siguiente enlace 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;
}
Reemplaza 'action', 'right' y 'apierror-action-notallowed' con los valores apropiados.