Problematik / Zielsetzung

Die Rechteverwaltung (ACL Access Control Level) unter Joomla 1.6.x wurde gegenüber der Version 1.5.x erheblich erweitert und besitzt nun eine Komplexität, die ein flexibles Einstellen der Rechte für Funktionen, Menüs, Inhaltsanzeige/-nutzung ermöglich. Diese Flexibilität setzt aber ein notwendiges Verständnis voraus um es nutzen zu können.

In diesem Beitrag soll anhand einer konkreten Projekt-Aufgabenstellung gezeigt werden, wo und wie diese Rechte einzustellen und zu verwalten sind, an welchen Ecken in Joomla nach möglichen Konfigurationsmöglichkeiten gesucht werden muss um das Ziel zu erreichen.



Beispielaufgabe: "Beitrag einreichen"-Funktion für ohne Anmeldung für Gäste

Folgende Aufgabe soll ereicht werden. Im Frontend soll jedem Seitenbesucher die Möglichkeit angeboten werden einen Beitrag zur Veröffentlichung einzureichen, ohne dass dazu eine vorherige Anmeldung erfolgen muss.

In der Standardkonfiguration von Joomla 1.6.x ist es eben nicht möglich einem Homepagegast die Funktion "Beitrag einreichen" anzubieten. Nachfolgende Anpassungen sind bei Bedarf dafür also zwingend notwendig.

Infos vorab

Eine sehr gute Einführung in das Thema ACL findet man u.a. auf joomla-fulda.de, des es lohnt vorab zu lesen.

Für das Beispiel wurde zusätzlich als Editor der JCE-Komponente installiert. Das ist ein im Funktionsumfang noch besser ausgestatteter Joomla-Content-Editor, der u.a. eine gut gelöste Rechteverwaltung mitbringt, mit der es eben nicht nur möglich ist einen Editor bei Erlaubnis anzubieten, sondern diesen auch im Funktionsumfang abgestuft zu konfigurieren, so dass Gast-Autoren z.B. einen eingeschränkten Funktionsumfang zur Verfügung habe als angemeldete Autoren oder gar Administratoren.

Nun geht's los:

Die Arbeitsschritte  - Übersicht

  1. Den Menüpunkt "Beitrag einreichen" aus dem Benutzermenü holen in ein öffentliches.
  2. Den Menüeintrag "Beitrag einreichen" auf Status "öffentlich" setzen.
  3. Neues JCE-Profil "Gast-Editor" einrichten.
  4. Berechtigungseinstellungen für "öffentlich" / "erstellen" ändern.
  5. Die Berechtigungen im JCE einstellen und die Reihenfolge der JCE-Profile ändern.

Die Arbeitsschritte im Detail

1. Den Menüpunkt "Beitrag einreichen" aus dem Benutzermenü holen in ein öffentliches

im Benutzermenü, welches nur angezeigt wird, wenn man eingeloggt ist, gibt es bereits einen Menüpunkt "Beitrag einreichen". Einen gleichlautenden Menüeintrag in ein öffentliches Menü zu stellen, denn dort brauchen wir ihn ja, macht wenig Sinn und wird von Joomla auch als unzulässig moniert. Deshalb machen wir es uns einfach unverschieben diesen Menüeintrag einfach z.B. in das Hauptmenü, welches ja immer und unabhängig vom Login-Status angezeigt wird.

2. Den Menüeintrag "Betrag einreichen" auf Status "öffentlich" setzen

Mit der Maßnahme unter 1. wird der Menüpunkt "Beitrag einreichen" aber längst noch nicht angezeigt, denn er selbst hat Veröffentlichungsrechte "registriert". Damit er für alle Nutzer sichbar wird, müssen seine Veröffentlichungsrechte auf "öffentlich" gesetzt werden.

3. Neues JCE-Profil "Gast-Editor" einrichten.

Hier bewegen wir uns jetzt in einem Funktionsbereich, der uns durch den MCE-J!-Standardeditor nicht angeboten wird.

Wir möchten nicht nur erreichen, dass unser Gast einen Editor angeboten bekommt, sondern auch, dass dieser Editor an die für ihn notwendigen oder erlaubten Funktionsumfang angepasst werden kann. Natürlich können wir dafür das bestehende JCE-Profil "default" verwendet und es so anpassen wie gewünscht. Ich will aber dieses Profil unberührt belassen, so dass es uns für andere Aufgaben außerhalb unser gerade zu erfüllenden Zielstellung noch unverändert zur Verfügung steht.

Wir richten also ein neue Profil "Gast-Editor" ein. Als wichtige notwendige Anpassungen empfehle ich folgende unbedingt vorzunehmen.

  1. Unter "User Group" wählen wir "öffentlich", damit klar ist, dass öffentliche User dieses Profil nutzen sollen.
  2. Unter "Components" kann eine Einschränkung der zutreffenden Komponenten gewählt werden, da es uns hier um Beiträge geht com_content.
  3. Unter "Area", kann die Einschränkung auf "Front-end" gesetzt werden.

Unter dem Registerreicher |Features| können dann durch Verschieben von Icons oder ganzen Icon-Zeilen die Funktionen zugewiesen werden, die dem öffentlichen Gast-Nutzer zur Verfügung stehen sollen.

Diese war nun eine Ausflug in die JCE-eigenen Rechteverwaltungsmöglichkeiten. Kommen wir zurück zur J!-Administration.

Berechtigungseinstellungen für "öffentlich" / "erstellen" ändern

Wenn Sie jetzt mal eben Ihren neuen Menüeintrag auf der Homepage testen, werden sie eine Fehlermeldung "403 - Es ist nicht erlaubt diese Ressource einzusehen!" ernten. Ursache dafür ist, dass der Gast-User gar nicht die Erlaubnis besitzt Beiträge zu erstellen. Das müssen wir ihm also noch gestatten. Dazu gehen Sie im Backoffice unter Site > Konfiguration  auf den Registerreiter |Berechtigungen|. Im Arccordeon-Bereich unter "Öffentlich" muss für die Aktion "Erstellen" die Berechtigung "Erlaubt" eingestellt werden.

Gehen Sie jetzt zurück zu Ihrer Website, dann werden Sie bei erneutem Klick feststellen können, dass der Editor unter "Beitrag einreichen" jetzt angezeigt wird.

Abschlussbetrachtungen

Nun bleibt eines nicht aus. Die Seite Beitrag einreichen wird wird abgesehen von der perfekten Einrichtung des Editors mit Formularfunktionen angezeigt, die für Gastuser viel zu weit in den Möglichkeiten gehen. Grund dafür ist dass die Content-Komponentenfunktion "Beitrag einreichen" hier keine rechteabhängig Verwaltungseinstellungen kennt, in der ich sagen kann, welcher Nutzergruppe/Nutzer hier welche Formularelement angeboten werden sollen. So ist z.B. dringend zu empfehlen, die Kategorieauswahl nur bedingt dem user zu überlassen und definitiv nicht die Zugriffsfestlegung, Metatags, Auto-Alias, und Titel-Alias etc. Das geht aber nicht ohne Eingriffe in die Komponente, die mit User-Funktionalität ausgestattet werden muss. Das ist aber Gegenstannd eines weiteren Artikels.