|
|
# permissions.xml
|
|
|
|
|
|
Mit der permissions.xml können Sie in QUIQQER eigene Zugriffsrechte anlegen und definieren.
|
|
|
Diese Zurgiffsrechte können Sie dann in Ihrem Plugin / Paket abfragen.
|
|
|
|
|
|
Das Anlegen geht denkbar einfach; legen Sie in Ihr Plugin / Paket eine permissions.xml an und definieren Sie hier Ihre Zugriffsrechte. Bei einem Update oder bei der Installation wird diese permissions.xml automatisch von QUIQQER eingelesen.
|
|
|
|
|
|
## Beispiel einer permissions.xml
|
|
|
|
|
|
``` xml
|
|
|
<permissions>
|
|
|
|
|
|
<!-- standard quiqqer permissions -->
|
|
|
<permission name="quiqqer.admin" type="bool">
|
|
|
<defaultvalue>1</defaultvalue>
|
|
|
</permission>
|
|
|
<permission name="quiqqer.su" type="bool">
|
|
|
<defaultvalue>1</defaultvalue>
|
|
|
</permission>
|
|
|
|
|
|
<permission name="quiqqer.system.update" type="bool" />
|
|
|
<permission name="quiqqer.system.permissions" type="bool" />
|
|
|
<permission name="quiqqer.system.cache" type="bool" />
|
|
|
|
|
|
<permission name="quiqqer.admin.groups.view" type="bool" />
|
|
|
<permission name="quiqqer.admin.groups.edit" type="bool" />
|
|
|
|
|
|
<permission name="quiqqer.admin.users.view" type="bool" />
|
|
|
<permission name="quiqqer.admin.users.edit" type="bool" />
|
|
|
|
|
|
<permission name="quiqqer.site.view" type="users_and_groups" area="site" />
|
|
|
</permissions>
|
|
|
```
|
|
|
|
|
|
## Aufbau einer permissions.xml
|
|
|
|
|
|
`<permissions>` - beginnt die permissions.xml
|
|
|
`<permission>` - definiert ein Zugriffsrecht
|
|
|
|
|
|
|
|
|
### `<permission>`
|
|
|
|
|
|
Ein `<permission>` legt ein Zugriffsrecht fest, es bestimmt die Eigenschaften und die Art des Zugriffsrecht.
|
|
|
|
|
|
*Attribut*
|
|
|
|
|
|
+ name="" - Das *name* Attribut legt den Namen des Zugriffsrechtes fest.
|
|
|
+ type="" - Das *type* Attribut legt den Typ des Zugriffsrechtes fest. (Mehr unter type="")
|
|
|
+ area="" - Das *area* Attribut legt den Gelteungsbereich des Zugriffsrechtes fest.
|
|
|
|
|
|
#### type=""
|
|
|
|
|
|
Mit dem *type* Attribut können Sie festlegen welchen Typ das Zugriffsrecht besitzt, das heißt welche Werte für dieses Recht zugelassen sind. Es gibt verschiedene Typen welche Sie zur Auswahl haben.
|
|
|
|
|
|
+ bool - lässt nur true, false, 0 und 1 zu
|
|
|
+ string - lässt jeden String zu
|
|
|
+ int - lässt nur Ganzzahlen zu
|
|
|
+ array - lässt ein Array zu, dieses Array wird in JSON Notation gespeichert
|
|
|
+ group - lässt nur eine Gruppen-ID zu
|
|
|
+ groups - lässt mehrere Gruppen-IDs zu
|
|
|
+ user - lässt nur eine User-ID zu (wird meißtens für Seiten [area=site] oder Projekte [area=project] verwendet)
|
|
|
+ users - lässt mehrere User-IDs zu (wird meißtens für Seiten [area=site] oder Projekte [area=project] verwendet)
|
|
|
+ users_and_groups lässt Gruppen-IDs und User-IDs zu (wird meißtens für Seiten [area=site] oder Projekte [area=project] verwendet)
|
|
|
|
|
|
|
|
|
#### area=""
|
|
|
|
|
|
Das *area* Attribut legt fest in welchem Geltungsbereich das Zugriffsrecht liegt. In QUIQQER gibt es verschiedene Geltungsbereiche, ein Zugriffsrecht für eine Seite ist nicht gleich das eines Benutzers. Damit QUIQQER unterscheiden kann für welchen Bereich das Zugriffsrecht gültig ist, können Sie dies in area="" festlegen.
|
|
|
|
|
|
Das *area* Attribut ist optional und der Standard-Wert ist <i>global</i>. Somit kann das Recht für Benutzer und/oder Gruppen gesetzt werden.
|
|
|
|
|
|
Folgende areas existieren in QUIQQER:
|
|
|
|
|
|
+ global - Globales Zugriffsrecht (Gruppen und Benutzer)
|
|
|
+ user - Ein Zugriffsrecht für einen Benutzer
|
|
|
+ groups - Ein Zugriffsrecht für eine Gruppe
|
|
|
+ site - Ein Zugriffsrecht für eine Seite
|
|
|
+ project - Ein Zugriffsrecht für ein Projekt
|
|
|
+ media - Ein Zugriffsrecht für den Media-Bereich eines Projektes
|
|
|
|
|
|
|
|
|
#### Wörter die nicht im name="" Attribut vorkommen dürfen
|
|
|
|
|
|
Generell sollten keine Sonderzeichen verwendet werden, um Probleme zu vermeiden.
|
|
|
Einzig erlaubte Zeichen in einem Zugriffsrecht sind a-z A-Z . und _
|
|
|
|
|
|
|
|
|
#### Übersetzung für den Administrationsbereich
|
|
|
|
|
|
Übersetzen können Sie die `<permissions>` wie jedes Plugin / Paket über die locale.xml.
|
|
|
|
|
|
``` xml
|
|
|
<groups name="mein/paket" datatype="js,php">
|
|
|
|
|
|
</group>
|
|
|
```
|
|
|
|
|
|
Um nun ein Zugriffsrecht zu übersetzen nehmen Sie für das name Attribut des `<locale>` Nodes den Namen des Zugriffsrecht plus `permission.` davor.
|
|
|
|
|
|
D.h. für das Zugriffsrecht
|
|
|
|
|
|
``` xml
|
|
|
<permission name="quiqqer.admin" type="bool">
|
|
|
<defaultvalue>1</defaultvalue>
|
|
|
</permission>
|
|
|
```
|
|
|
|
|
|
wäre folgender locale Eintrag möglich:
|
|
|
|
|
|
``` xml
|
|
|
<groups name="quiqqer/quiqqer" datatype="js,php">
|
|
|
<locale name="permission.quiqqer.admin">
|
|
|
<de><![CDATA[Administration]]></de>
|
|
|
<en><![CDATA[Administration]]></en>
|
|
|
</locale>
|
|
|
</groups>
|
|
|
```
|
|
|
|
|
|
In der linken Sitemap der Zugriffsverwaltung werden die Rechtebetitelungen stückweise aufgesplitet.
|
|
|
|
|
|
Zum Beispiel:
|
|
|
- permission.quiqqer
|
|
|
- permission.quiqqer.projects
|
|
|
|
|
|
![permissions4](http://dev.quiqqer.com:3000/quiqqer/quiqqer/uploads/75a76ad0de2dfae1ea6648e0f215f74b/permissions4.png)
|
|
|
|
|
|
Die Übersetzungsvariablen hierfür besitzen ein _header am Ende des Rechts.
|
|
|
Für das Rechte `quiqqer.editors.toolbar.delete` müssten folgende locale Einträge gemacht werden:
|
|
|
|
|
|
- permission.quiqqer._header
|
|
|
- permission.quiqqer.editors._header
|
|
|
- permission.quiqqer.editors.toolbar._header
|
|
|
|
|
|
Beispiel:
|
|
|
|
|
|
```xml
|
|
|
<locale name="permission.quiqqer._header">
|
|
|
<de><![CDATA[QUIQQER]]></de>
|
|
|
<en><![CDATA[QUIQQER]]></en>
|
|
|
</locale>
|
|
|
<locale name="permission.quiqqer.editors._header">
|
|
|
<de><![CDATA[Editor / WYSIWYG]]></de>
|
|
|
<en><![CDATA[Editor / WYSIWYG]]></en>
|
|
|
</locale>
|
|
|
<locale name="permission.quiqqer.editors.toolbar._header">
|
|
|
<de><![CDATA[Toolbar]]></de>
|
|
|
<en><![CDATA[Toolbar]]></en>
|
|
|
</locale>
|
|
|
``` |