API:Restricting API usage/cs
| Tato stránka je součástí dokumentace k API Action MediaWiki. |
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:
- Pro moduly
action=použijte$wgAPIModules['modulename'] = 'ApiDisabled'; - Pro moduly
prop=použijte$wgAPIPropModules['modulename'] = 'ApiQueryDisabled'; - Pro moduly
list=použijte$wgAPIListModules['modulename'] = 'ApiQueryDisabled'; - Pro moduly
meta=použijte$wgAPIMetaModules['modulename'] = 'ApiQueryDisabled';
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.