API:Einschränkung der API-Nutzung
Diese Seite ist Teil der Dokumentation der MediaWiki action API. |
Es gibt mehrere Wege, um die Nutzung der API (oder Teilen davon) auf bestimmte Benutzergruppen einzuschränken oder komplett zu deaktivieren. Einige davon erfordern die Änderung von Benutzergruppenrechten.
Zugriff auf die Schreib-API einschränken
Du kannst bestimmten Gruppen das Recht zur Nutzung der Schreib-API entziehen, indem du ihnen das Recht writeapi entziehst. Standardmäßig haben alle Gruppen das Recht writeapi.
Module deaktivieren
Du kannst bestimmte Module für alle Benutzer deaktivieren, indem du eine Zeile zu LocalSettings.php
hinzufügst.
Was exakt du hinzufügen musst, hängt von dem Typ des Moduls ab, das du deaktivieren möchtest:
- Für
action=
Module, benutze$wgAPIModules ['modulename'] = 'ApiDisabled';
- Für
prop=
Module, benutze$wgAPIPropModules ['modulename'] = 'ApiQueryDisabled';
- Für
list=
Module, benutze$wgAPIListModules ['modulename'] = 'ApiQueryDisabled';
- Für
meta=
Module, benutze$wgAPIMetaModules ['modulename'] = 'ApiQueryDisabled';
Beispiele
Um es für alle zu deaktivieren, die keine Administratoren sind, nutze action=edit
:
if ( !in_array( 'sysop', $wgUser->getGroups() ) ) {
$wgAPIModules['edit'] = 'ApiDisabled';
}
Um den Zugriff auf eine API-Aktion einzuschränken, füge folgende Hook zu ApiCheckCanExecute hinzu:
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;
}
Ersetze 'action'
, 'right'
und 'apierror-action-notallowed'
durch die passenden Werte.