# Sicherheit

## Berechtigungen

Berechtigungen werden in der Tabelle **capabilities** definiert. Berechtigungsnamen bestehen aus einem Bereich und einer konkreten Aktion, getrennt durch einen Doppelpunkt.&#x20;

Also: *Bereich:Aktion*

Beispiel:&#x20;

user:addUser

Bei diesem Beispiel handelt es sich um eine Berechtigung im Bereich 'user'. Diese Berechtigung wird überprüft, wenn ein Benutzer angelegt werden soll. Fehlt die Berechtigung, wird eine Fehlermeldung angezeigt.&#x20;

Berechtigungen aus der Tabelle capabilities werden in der Tabelle **role\_capabilities** mit Rollen **(role\_id)** verknüpft. Das Feld **permission (1 == true, 0 == false)** legt fest ob der Nutzer mit der entsprechenden Rolle die Aktion ausführen darf. Ist für eine Rolle kein Eintrag für die entsprechende Berechtigung vorhanden, ist permission == false.&#x20;

Berechtigungen werden mit der php Funktion **checkCapabilities()** überprüft. Dabei können die folgenden Parameter gesetzt werden:&#x20;

```
checkCapabilities(
    $capability = null,             // 'user:addUser'
    $role_id = null,                // in der Regel wird hier $USER->role_id eingetragen
    $thow_exception = true,         // soll Fehler geworfen werden. Standart ist 'true'. Wenn 'false' gesetzt ist, gibt checkCapabilities das Ergebnis der Überprüfung als boolean zurück. 
    $modal = false                  // wird die Funktion im Modal aufgerufen, muss 'true' gesetzt werden.
)
```
