Rules - Regeln
Meiner Meinung nach ist dieses eines der absoluten Highlights in GMAccess! Unter diesen Menüpunkt kann ich sehr individuelle Lösungen kreieren und eine weitreichende Rechteverwaltung vollziehen. An dieser Stelle wird Joomla meines Erachtens entscheidend aufgebrochen und kaum noch Grenzen gesetzt.
Einige Abläufe, die in Joomla bekannt sind, sind bereits vorgegeben und können User im Backend individuell zugewiesen werden.
Diese Rechte können durch neue Regeln erweitert werden. Und zwar sowohl für das Backend, als auch Frontend. Es ist ohne weiteres möglich nicht nur Bereiche, Kategorien und Artikel, Module, Plugins oder ganze Komponenten zu sperren/freizugeben, sondern auch Teilbereiche einer Komponente oder bestimmte Downloads freizugeben/zu sperren und vielerlei mehr zu machen.
Legen wir eine neue Regel an. Klicken wir in der großen Iconleiste auf Neu.
Joomla
Standardmäßig ist als "Typ der Rechtevergabe" (Übersetzung von mir) "Joomla" ausgewählt.
Unter Acosection wird die Komponente ausgewählt, die von Joomla benutzt wird und für bestimmte Vorgänge innerhalb Joomlas zuständig sind. Wobei es sich hier ausschließlich um Vorgänge im Backend handelt.
Unter Aco wird die Aktion ausgwählt, die zur Komponente passt. Ich empfehle einfach mal ein paar der vorhandenen Regeln anzuschauen und bei Bedarf ein wenig zu experimentieren. Da ich selber ausschließlich erweiterte Rechte für das Frontend brauchte, habe ich mich mit diesem Teil nicht näher befasst.
Specific - Spezifische Regeln
- Acosection
Der Name der Komponente, Plugin, Modules , auf das zugegriffen werden soll (Beispiel: com_content). - Aco
Die Aktion die gewirkt werden soll (Beispiele: add, read, edit, delete, …) - Axosection
Der Elementtyp auf dem zugegriffen werden soll (Beispiel: item, category, form, …) - Axo
ID des betreffenden Elements (Beispiel: 12, 35, …)
URL componant - Komponentenerweiterung
"Komponentenerweiterung" ist meine Übersetzung.
Für mich persönlich ist das hier der spannendste Teil, da ich hiermit Komponenten aufbrechen kann und auf Teilbereiche zugreifen kann, an die ich über eine "normale" Rechteverwaltung nicht heran komme. In der eglischen Übersetzung fehlte an dieser Stelle selbige. Ich habe meine eigene Übersetzung gemacht. Das File dazu, kann bei mir downloadet werden.
- Label = Dieser Text wird später bei der Rechtevergabe angezeigt
- Komponente
Komponentenauswahl - Variable URL 1
Der vordere Teil der URL - Wert URL 1
… und deren Wert - Variable URL 2
Der hintere Teil der URL - Wert URL 2
… und deren Wert
Dazu ein paar Beispiele:
Auf Bingelbonx haben wir den AdsManager installiert. Wir möchten das nur Premiumuser eine neue Anzeige aufgeben dürfen. Der Aufruf einer neuen Anzeige im Frontend ergibt diese URL:
http://www.bingelbonx.de/index.php?option=com_adsmanager&page=write_ad&Itemid=121
Unter Komponente muss nun der AdsManager eingteragen werden. Also "com_adsmanager".
Der erste Teil der URL ist "page=write_ad". Variable und Wert. Einen zweiten Teil gibt es nicht, da die ItemID für unsere Belange unwichtig ist. Daraus ergibt sich:
Label: Neue Ads schreiben
Komponente: com_adsmanager
Variable URL 1: page
Wert URL 1: write_ad
Diese neue Regel findet sich nun in dem Bereich der Frontend-Rechtevergabe wider. Hier kann ich nun festlegen, welche Gruppe oder Individualuser auf diesen Menüpunkt – Neue Ads schreiben – zugreifen dürfen. Wer dafür keine Berechtigung hat, erhält eine 403-Fehlermeldung. Somit kann ich also eine individuelle Fehlerseite für den 403-Fehler festlegen und freundlich mitteilen, das man keine Berechtigung hat.
Ob man diesen Menüpunkt verstecken kann, so dass der Menüpunkt unsichtbar ist, wenn man zu einer nichtberechtigten Gruppe zugehört, vermag ich nicht zu sagen. Vielleicht bekommt ja jemand heraus, wie das geht und kontaktet mich dann …
Ein weiteres Beispiel:
Wir haben ein Magazin, in dem unter anderem Buchtipps stehen. Angenommen ich wollte bestimmte Buchtipps nur bestimmten Usern zugänglich machen und andere Tipps allen, dann kann ich das wie folgt lösen:
Zunächst ermittel ich die URL des Buchtipps, das ich für die Allgemeinheit sperren möchte:
http://www.bingelbonx.de/index.php?option=com_content&view=article&id=75
option=com_content
Hier wird die Komponente angezeigt, die wir benutzen
view=article
Der erste Teil der URL
id=75
Der zweite Teil der URL
Damit kann ich meine Regel folgendermaßen festlegen:
Typ der Rechtevergabe: Komponentenerweiterung
Label: Bestimmten Buchtipp sperren
Komponente: com_content
Variable URL 1: view
Wert URL 1: article
Variable URL 2: id
Wert URL 2: 75
Im Frontend taucht diese Regel wieder auf und kann entsprechend zugewiesen werden.
Ich kann auf diese Art und Weise auf beinahe jeden Teilbereich in Joomla zugreifen und somit eine sehr individuelle Rechteverwaltung ermöglichen.
ACHTUNG! Bei den Labels etwas aufpassen. Ich hatte Schwierigkeiten mit einem Minuszeichen zwischen zwei Namen. Eine URL im Label wird auch übel genommen. In der Frontend-Zuordnung kann es dann passieren, dass dort nichts angezeigt wird. Also sämtliche Extensions verschwunden sind.