AddOn


Kontrolle des Zugriffs auf Artikel und Mediendateien

Beschreibung

Dieses AddOn ermöglicht einen Zugriffsschutz für ausgewählte Bereiche von Artikeln und/oder Mediendateien. Der Zugriff wird über die Authentifizierung von Redaxo-Benutzern kontrolliert, denen die entsprechenden Kategorien zugeordnet sind. Die erfolgte Autorisierung wird Session-basiert gespeichert.
Es ist nur eine einfache Rewrite-Regel erforderlich.
Das AddOn ist komplett zweisprachig eingerichtet (deutsch, englisch).

Geschützte Bereiche:
In Rollen für Redaxo-Benutzer werden normalerweise Kategorien und Medienkategorien markiert, um den Verantwortungsbereich (Schreibzugriff) eines Redakteurs für alle Artikel und Mediendateien im zugehörigen Pfad festzulegen. In diesem AddOn können entsprechend definierte Kategorien und Top-Medienkategorien als “geschützte Bereiche” interpretiert werden, auf die Besucher erst nach Authentifizierung im Frontend mit Name und Passwort des zugehörigen Redaxo-Benutzers Lesezugriff erhalten.

Bewacher-Benutzer:
Redaxo-Benutzer mit solchen Rollen können als “Bewacher-Benutzer” für ihre zugehörigen Bereiche eingerichtet werden. Auf diese Weise kann auch eine Kategorie festgelegt werden, in deren Pfad nur der im Backend eingeloggte Site-Administrator Lesezugriff als Besucher hat (“verbotener Bereich”).
Im Unterschied zu Redakteuren ist ein Bewacher-Benutzer als inaktiv zu definieren, und das Feld “Beschreibung” muss den Wert “Protector” bekommen, im Falle des Bewachers für den verbotenen Bereich den Wert “Guardian”.
Ein im Backend eingeloggter Redaxo-Redakteur hat als Besucher auch dann Lesezugriff auf seine Seiten, wenn diese in geschützten Bereichen liegen.

Überprüfung der Zugriffsberechtigung:
Ob ein angeforderter Artikel öffentlich, geschützt oder verboten ist, kann mithilfe einer AddOn-Funktion festgestellt werden, sinnvollerweise im Seiten-Template. Dort kann ggf. ein Hinweis oder ein Link auf eine Login-Seite anstelle des Artikelinhalts angezeigt werden. Die Überprüfung, ob eine Mediendatei öffentlich oder geschützt ist, erfolgt in der Boot-Datei. Bei fehlender Zugriffsberechtigung wird anstelle der angeforderten Mediendatei ein Standard-Fehlerbild angezeigt.


Umsetzung

Wolfgang Busch

An der Windmühle 3
38173 Dettum

busch-dettum.de


Versionen

2.1

Für REDAXO
^5.3.0
Veröffentlicht am
11.10.2019

Der Quellcode ist redaktionell und mit Blick auf bessere Performance überarbeitet.

2.0

Für REDAXO
^5.3.0
Veröffentlicht am
05.10.2019

Der bisherige ‘Gemeinschaftsbenutzer’ wird ersetzt durch einen Redaxo-Benutzer (rex_user). Darüber hinaus kann der Zugriff auf verschiedene Kategorien und/oder Medienkategorien individuell über mehrere Redaxo-Benutzer kontrolliert werden. Damit entfällt auch die gesamte Konfiguration.

Die Funktion protected_or_forbidden() gibt jetzt andere Werte zurück.
!!! Die entsprechende Passage im Seiten-Template muss geändert werden !!!

An die Login-Seite muss nun die Redaxo-User-Id des jeweiligen Bewacher-Benutzer übergeben werden (per URL-Parameter uid=user_id). Für die Seite wird kein Modul mehr zur Verfügung gestellt (Einzeiler, kann per copy & paste aus der Beschreibung übernommen werden).

Falls Kategorien und/oder Medienkategorien geschützt werden, für die ein Redaxo-Redakteur zuständig ist, ist dieser auch authentifiziert, wenn er im Backend eingeloggt ist.

1.8

Für REDAXO
^5.3.0
Veröffentlicht am
31.07.2019

Ergänzung einer weiteren Formularseite zur Authentifizierung eines beliebigen weiteren Benutzers (für mögliche andere Anwendungen), unter Nutzung einer weiteren Session-Variablen.
Die Passwörter werden jetzt verschlüsselt abgelegt (rex_login::passwordHash($pwd)) und in verschlüsselter Form abgeprüft (rex_login::passwordVerify($pwd,$encr_pwd)).

1.7.2

Für REDAXO
^5.3.0
Veröffentlicht am
25.07.2019

Die Abmeldung nach erfolgreicher Authentifizierung funktioniert jetzt vorschriftsmäßig.

1.7.1

Für REDAXO
^5.3.0
Veröffentlicht am
12.07.2019

Ergänzung für den Verweis auf eine Mediadatei in der Form ‘index.php?rex_media_file=FILE&rex_media_type=TYPE’.
Die Datei wird auch gefunden und angezeigt, wenn sie außerhalb des Ordners media liegt und TYPE über den Effekt mediapath (‘Datei: Pfad anpassen’) den zugehörigen Ordner liefert.

1.7

Für REDAXO
^5.3.0
Veröffentlicht am
28.06.2019

Verzicht auf eine eigene Funktion ‘sendFile’, stattdessen wird
‘rex_response::sendFile’ verwendet.
Parameter- und CSS-Klassennamen werden jetzt als benannte Konstanten abgelegt.
Im LogIn-Formular und im Modul werden die sprachabhängigen Texte jetzt anhand der Sprach-Id ausgewählt, nicht mehr anhand des Sprach-Codes. Außerdem wird nach erfolgreicher Authentifizierung ein Abmelde-Button angezeigt.
Anstatt leerer oder nicht vorhandener Media-Dateien wird die Datei ‘warning.jpg’ des AddOns media_manager angezeigt.

1.6.2

Für REDAXO
^5.3.0
Veröffentlicht am
05.03.2019

Verbesserung der Dokumentation im Bereich der Konfiguration und Verlegung aller Styles in die Stylesheet-Datei.

1.6.1

Für REDAXO
^5.3.0
Veröffentlicht am
05.03.2019

Ein dummer Fehler im Installations-Script ist behoben.

1.6.0

Für REDAXO
^5.3.0
Veröffentlicht am
02.03.2019

Der gesamte Source-Code ist jetzt auf UTF-8 umgestellt.
Der Code ist mit ‘error_reporting(E_ALL);’ überprüft.
Der AddOn-Modul zur Erzeugung eines LogIn-Formulars ist jetzt komplett zweisprachig und kann gleichermaßen im deutschen wie auch im englischen Zweig verwendet werden.
Die Überprüfung, ob ein Besucher als ycom-User eingeloggt ist, ist ausgebaut.

1.5.0

Für REDAXO
^5.3.0
Veröffentlicht am
11.02.2019

Schlüssel von neu definierten assoziativen Arrays werden jetzt als Konstanten (in Apostrophs) behandelt.

1.4.0

Für REDAXO
^5.3.0
Veröffentlicht am
11.07.2018

Jetzt werden bei der Ausgabe von Bildern auch die Medientypen gemäß Redaxo Media Manager berücksichtigt.

1.3.0

Für REDAXO
^5.3.0
Veröffentlicht am
08.07.2018

Jetzt lassen sich alle Konfigurationsparameter einzeln zurücksetzen bzw. löschen.

1.2.0

Für REDAXO
^5.3.0
Veröffentlicht am
06.06.2018

Alle Funktionen der Klassen access_control und access_control_install werden jetzt vorschriftsmäßig als “public static function …” deklariert.
Bei der De-Installation werden die Konfigurationsvariablen jetzt aus der Tabelle rex_config entfernt.

1.1.0

Für REDAXO
^5.3.0
Veröffentlicht am
19.05.2018

Bei großen Dateien (> 250 MB) produzierte rex_managed_media::sendMedia() einen Speicherüberlauf.
Die Ausgabe der Mediendateien erfolgt auf diesem Wege jetzt nur noch für Bilder, PDF-Dokumente und Plaintext. Andere Dokumente werden mit einer modifizierten Version von rex_response::sendFile(…) ausgegeben.
rex_response::sendFile selbst liefert Dateien aus dem Browser-Cache, d.h. nach einem LogIn würde weiterhin ‘protected.gif’ angezeigt.

1.0.0

Für REDAXO
^5.3.0
Veröffentlicht am
11.05.2018

Dieses AddOn ermöglicht einen Zugriffsschutz für ausgewählte Bereiche von Artikeln beziehungsweise Mediendateien. Es ist komplett zweisprachig eingerichtet (deutsch, englisch).