Jump to content

API:Restricting API usage/th

From mediawiki.org
This page is a translated version of the page API:Restricting API usage and the translation is 36% complete.

There are several ways to restrict usage of (certain parts of) the API to certain groups of users, or to disable it altogether. Some of these require changing group permissions.

Disabling modules

You can disable individual modules for all users by adding a line to LocalSettings.php. Exactly what to add depends on the type of module you want to disable:

  • สำหรับ action= modules, ใช้ $wgAPIModules ['modulename'] = 'ApiDisabled';
  • สำหรับ prop= modules, ใช้ $wgAPIPropModules ['modulename'] = 'ApiQueryDisabled';
  • สำหรับ list= modules, ใช้ $wgAPIListModules ['modulename'] = 'ApiQueryDisabled';
  • สำหรับ meta= modules, ใช้ $wgAPIMetaModules ['modulename'] = 'ApiQueryDisabled';

ตัวอย่าง

To disable anyone from using action=edit:

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

To limit the access of an API action, add the following hook for 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;
}

Replace 'action', 'right' and 'apierror-action-notallowed' with the appropriate values.