API:Ограничение использования

This page is a translated version of the page API:Restricting API usage and the translation is 86% complete.
Outdated translations are marked like this.

Существует несколько способов ограничить определёнными группами участников использование (определённых частей) API, или даже отключить API вообще. Некоторые из них требуют изменения прав групп участников.

Отключение модулей

Вы можете отключить отдельные модули для всех пользователей, добавив строку в LocalSettings.php. Что конкретно добавить, зависит от типа модуля, который вы хотите отключить:

  • Для модулей action=, используйте $wgAPIModules ['modulename'] = 'ApiDisabled';
  • Для модулей prop=, используйте $wgAPIPropModules ['modulename'] = 'ApiQueryDisabled';
  • Для модулей list=, используйте $wgAPIListModules ['modulename'] = 'ApiQueryDisabled';
  • Для модулей meta=, используйте $wgAPIMetaModules ['modulename'] = 'ApiQueryDisabled';

Примеры

Чтобы запретить всем, кроме администраторов, использование action=edit:

$wgAPIModules['edit'] = 'ApiDisabled';

Чтобы ограничить доступ к действию API, добавьте к 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;
}

Замените 'action', 'right' и 'apierror-action-notallowed' необходимыми для вас значениями.