API:Limiter l'utilisation de l'API
Cette page fait partie de la documentation de l'API MediaWiki Action. |
Il existe plusieurs façons de limiter l’utilisation de (certaines parties de) l’API à certains groupes d’utilisateurs ou de la désactiver complètement. Certaines d'entre elles nécessitent de modifer les permissions du groupe.
Restreindre l'accès à l'API Write
Vous pouvez refuser à certains groupes le droit d'utiliser l'API Write en leur refusant le droit writeapi. Par défaut, tous les groupes possèdent le droit writeapi.
Désactiver les modules
Vous pouvez désactiver les modules individuels pour tous les utilisateurs en ajoutant une ligne à LocalSettings.php
.
Ce que vous ajoutez dépend exactement du type de module que vous voulez désactiver :
- Pour les modules
action=
, utilisez$wgAPIModules ['modulename'] = 'ApiDisabled';
- Pour les modules
prop=
, utilisez$wgAPIPropModules ['modulename'] = 'ApiQueryDisabled';
- Pour les modules
list=
, utilisez$wgAPIListModules ['modulename'] = 'ApiQueryDisabled';
- Pour les modules
meta=
, utilisez$wgAPIMetaModules ['modulename'] = 'ApiQueryDisabled';
Exemples
Pour désactiver l'utilisation de action=edit
à quiconque n'étant pas administrateur :
if ( !in_array( 'sysop', $wgUser->getGroups() ) ) {
$wgAPIModules['edit'] = 'ApiDisabled';
}
Pour limiter l'accès à une action d'API, ajoutez le point d'entrée suivant à 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;
}
Remplacez 'action'
, 'right'
et 'apierror-action-notallowed'
par les valeurs appropriées.