API:Restringiendo API uso
![]() | 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.
Deshabilitar toda la API
Puedes deshabilitar la API en su conjunto configurando $wgEnableAPI = false;
en LocalSettings.php .
La API está habilitada por defecto.
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.
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:
- 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
:
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.