2016-07-20 25 views
1

Ich möchte nicht nicht registrierte (nicht angemeldete) Benutzer auf Revisionsverlauf in meiner Mediawiki-Installation zugreifen können. Ich habe einige vergangene SE-Fragen zum Ausblenden des Tabs über CSS gefunden, aber ich möchte den Zugriff auf die gesamte "Verlaufs" -Seite auch über direkten URL-Zugriff blockieren.Zugriff auf Verlauf für anonyme Benutzer auf Mediawiki blockieren?

Es gibt viele leistungsfähige Plugins, um den Benutzerzugriff auf verschiedene komplexe Arten zu beschränken, aber ich hatte gehofft, dass es irgendwo einen einfachen "Off-Switch" für diese Funktionalität gibt, bevor ich mit der Einrichtung umfangreicher Erweiterungen beginne.

+0

https: // www.mediawiki.org/wiki/Manual:Preventing_access#Other_restrictions schlägt vor, dass es nicht gibt – Bergi

Antwort

3

Der einfachste Weg ist es, diese Codezeilen nach unten Ihrer LocalSettings.php Datei hinzuzufügen:

$wgHooks['MediaWikiPerformAction'][] = function($output, $article, $title, $user, $request, $wiki) { 
    if((!$user || $user->isAnon()) && ($request->getVal('action') == 'history')) { 
    return false; 
    } 
    return true; 
} 

Bitte beachten Sie, dass diese Lösung benötigt PHP 5.5 + und Mediawiki 1.25+

+0

Dieses Snippet ist sehr nützlich für mich, können Sie mir raten, wie man es nicht auf anonyme Benutzer, aber auf einer bestimmten Gruppe tut? – Marcandria

+0

Sicher, ersetzen Sie einfach Teil '(! $ User || $ user-> isAnon())' durch '($ user && in_array ('meine_benutzergruppe', $ user-> getGroups()))', wo 'meine_benutzergruppe 'ist Ihre Zielgruppe – wakalaka

+0

Es funktioniert als ein Charme, aber ich möchte hinzufügen, dass Sie eine echte benutzerdefinierte Gruppe erstellen müssen: es funktioniert nicht mit integrierten Gruppen wie "Bürokrat" oder "Benutzer". – Marcandria