API:Restringiendo API uso

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page API:Restricting API usage and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎dansk • ‎español • ‎français • ‎polski • ‎русский • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

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.

Deshabilitar toda la API

Puedes deshabilitar la API en su conjunto configurando $wgEnableAPI = false; en LocalSettings.php . La API está habilitada por defecto.

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.

Deshabilitar la API de escritura

Puedes deshabilitar todos escribir módulos configurando $wgEnableWriteAPI = false; 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.

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.

Restringiendo el acceso a la API de escritura

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 $wgEnableWriteAPI = true; para usar la API de escritura.

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:

Ejemplo

Para deshabilitar a cualquiera que no sea un sysop usando action=edit:

if ( !in_array( 'sysop', $wgUser->getGroups() ) ) {
	$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();
    if (
        $moduleName == 'action' &&
        !in_array( 'right', $user->getRights() )
    ) {
        $message = 'apierror-action-notallowed';
        return false;
    }
    return true;
}

Reemplaza 'action', 'right' y 'apierror-action-notallowed' con los valores apropiados.