API:Omezení použití API
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.
Omezení přístupu k API pro zápis
Určitým skupinám můžete odepřít právo používat rozhraní API pro zápis tím, že jim odepřete právo writeapi. Ve výchozím nastavení mají všechny skupiny právo writeapi.
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 zakázat použití action=edit
komukoli, kdo není sysop:
if ( !in_array( 'sysop', $wgUser->getGroups() ) ) {
$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();
if (
$moduleName == 'action' &&
!in_array( 'right', $user->getRights() )
) {
$message = 'apierror-action-notallowed';
return false;
}
return true;
}
Nahraďte 'action'
, 'right'
a 'apierror-action-notallowed'
příslušnými hodnotami.