API:Restricting API usage/cs

Category:MediaWiki action API/cs

Existuje několik způsobů, jak omezit používání (určitých částí) API na určité skupiny uživatelů nebo je úplně zakázat. Některé z nich vyžadují změnu oprávnění skupiny.

Zakázání obecného přístupu

Pro přístup k API není vyhrazeno žádné uživatelské oprávnění. Chcete-li zakázat přístup k API pro konkrétní skupinu uživatelů, můžete pro tuto skupinu zakázat oprávnění read. Například pro zakázání anonymních požadavků,

$wgGroupPermissions['*']['read'] = false;

Upozorňujeme, že některé API moduly mohou být k dispozici bez ohledu na to. Pokud je přístupu úspěšně zabráněno, výstup API obvykle zobrazí chybový kód readapidenied.

Deaktivace modulů

Jednotlivé moduly můžete zakázat všem uživatelům přidáním řádku do LocalSettings.php. Co přesně přidat závisí na typu modulu, který chcete deaktivovat:

Příklady

Chcete-li komukoli zakázat používání action=edit:

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

Chcete-li omezit přístup k akci API, přidejte následující háček pro ApiCheckCanExecute:

static function onApiCheckCanExecute( $module, $user, &$message ) {
    $moduleName = $module->getModuleName();
    $permissionManager = MediaWikiServices::getInstance()->getPermissionManager();
    if (
        $moduleName == 'action' &&
        !$permissionManager->userHasRight( $user, 'right' )
    ) {
        $message = 'apierror-action-notallowed';
        return false;
    }
    return true;
}

Nahraďte 'action', 'right' a 'apierror-action-notallowed' příslušnými hodnotami.

Category:MediaWiki action API/cs