Doku zum access_control Plugin

Kurzbeschreibung

Dieses Plugin erweitert das CMS um ein Mehrbenutzer-Loginsystem mit benutzerabhängigem Menü- und Seitenumfang.

Es werden folgende Funktionen bereitgestellt:

Voraussetzungen


Einschränkungen


Installation


Verwendung

Eine Übersicht inkl. Kurzbeschreibung aller verfügbaren Funktionen sowie eine Beschreibung der Plugin-Einstellungen ist im Backend zu finden.

Direktlinks im Menü
Ein Schutz von Kategorien oder Inhaltsseiten, die lediglich einen Menü-Direktlink enthalten, ist nicht möglich, da der Datei- bzw. Verzeichnisname nicht mit dem Kategorie-/Seitennamen und damit nicht mit dem Hochkomma endet. Hierfür gibt es z.B. den Workaround, dass in die erste Seite einer Kategorie bzw. in eine beliebige Standard-Inhaltsseite ein Redirect eingefügt wird. Dafür kann man z.B. das folgende benutzerdefinierte Syntaxelement verwenden:
redirect = <META HTTP-EQUIV="refresh" CONTENT="0; URL={VALUE}" target="_blank">Weiter zu [link={VALUE}|{VALUE}...]
Verwendung in der Inhaltsseite: [redirect|http://www.xyz.de]

API - Mitbenutzung der Login-Logik und Benutzerverwaltung in anderen Plugins

Hierfür existieren im wesentlichen zwei Alternativen:

Patch-Philosopie - musste das sein?

Dieses Plugin wäre ohne Patch der index.php nicht in dieser Form realisierbar. Durch Eingriff in die index.php erstreckt sich die Kontrolle auch auf Funktionen wie Suche oder Sitemap. Auch das Standardverhalten, dass durch den Zugangsschutz für manche Benutzer "leergewordene" Kategorien gar nicht erst angezeit werden oder dass bei "Nichtvorhandensein" einer Inhaltsseite einfach die Standard-Inhaltsseite der entsprechenden Kategorie angezeigt wird, wird dadurch genutzt.

Die Einbindung der eigentlichen Login-Logik wäre prinpzipiell auch innerhalb der index.php des Plugins möglich (wie dies z.B. bei den Funktionen {access_control|md5helper} oder {access_control|passwordchangeform} realisiert ist), die Auswertung darf in diesem speziellen Fall aber nicht erst bei Einbindung des Plugins oder Einlesen des Templates erfolgen, sondern die Benutzer- und Zugriffsinfos müssen schon früher bekannt sein.

Der Patch arbeitet bis auf die Stelle, an der die Kategorien und Seiten aus der Verzeichnisstruktur bestimmt und gefiltert werden, trotz zweier Include-Dateien in die index.php für sich alleine, auch Variablennamen sind meist mit vorangestelltem ac_, um sie eindeutig zu halten.
Nichtsdestotrotz empfiehlt es sich, den Patch bei der Fehlersuche an anderen Baustellen oder bei Erstellung eines neuen Problemthreads im Forum nicht völlig ausser Betracht zu lassen! Tritt der Fehler trotz deaktiviertem Plugin auf, dann ist access_control höchstwahrscheinlich nicht der Schuldige.



Versions-Historie

Version 1.0 / 19.11.2010 / M. Hauser (mhsob)
- Erstausgabe des Mehrbenutzer-Loginsystems als Plugin

Version 2.0 / 27.11.2010 / M. Hauser (mhsob)
- Bugfix: vergessenes {access_control|doku} aus Plugin-Dropdown-Liste bei Inhaltsseitenbearbeitung 
  gelöscht
- Performance verbessert (merkt man wahrscheinlich eh nicht...)
  Die accesslist wird für aktuellen Benutzer am Anfang gleich auf die für ihn freigeschalteten 
  Kategorien/Inhaltsseiten gekürzt -> 1x etwas mehr Verarbeitungsaufwand, bei den wiederholten 
  Folgeaufrufen ist dann deutlich weniger Stringsuche nötig
- Wird für eine Seite der Benutzer "any_login" angegeben, so muss fuer die Anzeige der Seite 
  einfach nur irgendein registrierter Benutzer angemeldet sein. 
- Plugin-Funktion zur Rückgabe des verifizierten aktuell angemeldeten Benutzers implementiert
  Der Name kann auf einer Seite ausgegeben werden oder über als Teil des Aufrufs an andere Plugins 
  übergeben werden.
- Implementierung einer sehr einfachen "API", welche die Verwendung des aktuell angemeldeten
  Benutzers in anderen Plugins ermöglicht.
- Erweiterung der Befehlssyntax um ein Formular zur Änderung des Benutzerpassworts im Frontend
  (vom Admin für jeden Benutzer extra freischaltbar)
- Erweiterung der Befehlssyntax um ein kleines Formular zur MD5-Codierung von Passwörtern
- Erweiterung der Doku im Backend und Aufnahme der Dokus für die Benutzer- und Zugriffsliste 
  in den Plugin-Beschreibungstext (kann in Version 1.1 aus den eigentlichen Eingabefeldern gelöscht
  werden)
- Im Vergleich zu v1.0 muss nicht mehr für einen Benutzer eine Kategorie alleine extra freigegeben 
  werden, wenn er für die betreffende Kategorie inkl. einer Unterseite freigeschaltet ist.
- UPDATE-EMPFEHLUNG:
  * Alles vom neuen access_control Plugin Verzeichnis überschreiben, nur die plugin.conf belassen
  * Aus der plugin.conf können bei Benutzer- und Zugriffsliste die Kommentarzeilen größtenteils
    über das Backend entfernt werden, da die Doku jetzt in der Beschreibung im Backend enthalten
    ist       

Version 2.0.1 / 03.12.2010 / M. Hauser (mhsob)
- Anpassung der Patch-Routine an stefanbe's beta3 Rev. 801 (aus dem Forum)
  -> funktioniert jetzt mit .beta3 und mit der neuen Spielversion