API:Restricting API usage/fr

Category:MediaWiki action API/fr

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.

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

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.

Category:MediaWiki action API/fr