API:Limiter l'utilisation de l'API

This page is a translated version of the page API:Restricting API usage and the translation is 100% complete.

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.

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 pour tout le monde :

$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.