Tutorial – Rechte erstellen
Die Rechteverwaltung von eZ Publish ist das Kernstück für die Anzeigeverwaltung der Webseite und des Backends. Hier werden die Rechte der einzelnen Benutzer und Redakteure definiert.
eZ Publish bietet schon in der Basis-Installation viele Funktionen und Methoden an, die fast 99% des Grundbedarfs decken. Doch oft benötigt man eigene Rechte und wie man diese definiert erkläre ich in diesem kurzem Tutorial.
Die benötigte Rechte-Brücke geht über ein Modul. Den Hintergrund, warum dies so gelöst wurde, habe ich bis jetzt noch nicht verstanden. Naja, vielleicht ändert sich das in einer der nächsten eZ Publish Versionen.
Vorbereitung
Unser Beispiel erstellt das Recht „my_own_right“ mit der Funktion „read“.
Wie schon erwähnt, müssen wir unser Recht über das Modul erstellen bzw. definieren. Dazu erstellen wir uns einen Ordner in unserer Erweiterung.
/modules/my_own_right/
Darin legen wir zwei Dateien an.
- module.php
- read.php
innerhalb der module.php benötigen wir folgenden Code
<?php $Module = array( 'name' => 'my_own_right', 'variable_params' => true ); $ViewList = array(); $ViewList['read'] = array( 'script' => 'read.php', 'functions' => array("read"), 'params' => array ( ) ); $FunctionList = array(); $FunctionList["read"] = array( ); ?>
In der read.php benötigen wir keinen Code. Die Datei dient als so genannter Platzhalter. Ich persönlich füge immer ein Kommentar ein der beschreibt, wofür die Datei benötigt wird.
<?php // Dummy for my own right - my_own_right/read ?>
Und unter settings benötigen wir die klassische module.ini
[ModuleSettings] ExtensionRepositories[]=YOUR_EXTENSION_NAME ModuleList[]=my_own_right
So, nun einmal Autoloads neu generieren und den Cache leeren. (Ob der Cache wirklich geleert werden muss, darüber bin ich mir nicht sicher. Am besten trotzdem machen, denn sicher ist sicher) 🙂
Rechteabfrage
Im Template können wir über folgenden Fetch unser neu erstelltes Recht abfragen:
{def $user_translator = fetch( 'user', 'has_access_to', hash( 'module', 'my_own_right', 'function', 'read' ) ) } {if eq($user_translator,1)} Yes Sir! {else} No Sir! {/if}
In der Rechteverwaltung unter Rollen und Rechte findet man nun das Modul my_own_right und kann dort auch das Recht „read“ auswählen.
Fazit
Im Grunde ist es doch recht einfach, wenn auch etwas aufwendig. Schade, dass es dafür in eZ Publish keine InI gibt, in der man diese Einstellungen vornehmen kann. Extra dafür ein Modul erstellen, ist doch etwas übertrieben, würde ich meinen. Mir scheint es fast so, als ob es sich hier um eine Notlösung handelt.
Im Grunde würde ich mir so eine Einstellung wünschen:
[rights] right[]=my_own_rule [my_own_rule] functions[]=read
https://blog.silversolutions.de/2012/08/b2b-technologie/tutorial-rechte-erstellen/https://blog.silversolutions.de/wp-content/uploads/2018/12/ez_dummy.pnghttps://blog.silversolutions.de/wp-content/uploads/2018/12/ez_dummy-150x150.pngB2B.technologieCMS,Entwicklung,Praxis,SicherheitDie Rechteverwaltung von eZ Publish ist das Kernstück für die Anzeigeverwaltung der Webseite und des Backends. Hier werden die Rechte der einzelnen Benutzer und Redakteure definiert. eZ Publish bietet schon in der Basis-Installation viele Funktionen und Methoden an, die fast 99% des Grundbedarfs decken. Doch oft benötigt man eigene Rechte...David HohlDavid Hohldho@silversolutions.deEditorDavid Hohl ist seit 1995 Entwickler und Projektleiter und bringt langjährige Erfahrung mit eZ Publish mit. Bei silver.solutions war David 2012 bis 2014 als Entwickler, Konzeptionen und Projektleiter für eZ Publish Projekte verantwortlich. Er hat das eZ-Publish-Blog ins Leben gerufen.silver.solutions