2024-10-05 14:31:21 +02:00
|
|
|
# Konzept
|
|
|
|
|
|
|
|
## Notizen
|
|
|
|
|
2024-09-11 17:24:20 +02:00
|
|
|
- Kalender sollen unabhängig von Nutzern bestehen können
|
2024-09-27 07:06:29 +02:00
|
|
|
- Zugriffs-Stufen
|
|
|
|
- `none`: kein Zugriff
|
|
|
|
- `view`: nur lesend
|
|
|
|
- `edit`: lesend und schreibend
|
|
|
|
- `admin`: kann alles (auch Kalender löschen)
|
|
|
|
- einem Kalender können beliebig viele Nutzer zugeordnet werden, die jeweils bestimmte Zugriffs-Stufen zugewiesen haben
|
|
|
|
- Veranstaltungen bilden keine eigene Domäne
|
2024-09-12 16:35:57 +02:00
|
|
|
- es gibt verschiedene Arten von Quellen:
|
|
|
|
- lokal
|
|
|
|
- enthält Veranstaltungen
|
|
|
|
- caldav
|
|
|
|
- enthält keine eigenen Veranstaltungen
|
|
|
|
- sollte read-only- und read/write-Modus haben
|
2024-09-11 20:19:13 +02:00
|
|
|
- nach dem Anmelden sieht man eine Kalender-Ansicht mit folgenden Kalendern kombiniert angezeigt:
|
2024-09-12 16:35:57 +02:00
|
|
|
- öffentliche Kalender
|
2024-09-27 07:06:29 +02:00
|
|
|
- nicht öffentliche Kalendar, bei welchen man mindestens Lese-Berechtigung hat
|
2024-09-13 17:49:32 +02:00
|
|
|
- öffentliche Kalendar können ohne Anmeldung betrachtet werden, jedoch nur mit einem schwer bis gar nicht erratbaren Link
|
2024-10-05 14:31:21 +02:00
|
|
|
|
|
|
|
|
|
|
|
## Zugriffssteuerung
|
|
|
|
|
|
|
|
Es gibt folgende Zugriffsstufen :
|
|
|
|
|
|
|
|
- `none`: kein Zugriff
|
|
|
|
- `view`: nur Lese-Zugriff
|
|
|
|
- `edit`: Lese- und Schreib-Zugriff
|
|
|
|
- `admin`: Lese- und Schreib-Zugriff + Bearbeitung von Kalender-Eigenschaften
|
|
|
|
|
|
|
|
Zur Bestimmung welche Zugriffsstufe ein Nutzer auf einen Kalender/Termin hat, werden drei Werte betrachtet:
|
|
|
|
|
|
|
|
- Öffentlichkeit des Kalenders (`public`)
|
|
|
|
- Standard-Zugriffsstufe des Kalenders (`default_level`)
|
|
|
|
- dem Nutzer zugewiesene Zugriffsstufe für den Kalender (`attributed_level`)
|
|
|
|
|
|
|
|
Diese Angaben fließen in folgende Formel ein:
|
|
|
|
|
|
|
|
```
|
|
|
|
access_level = max(
|
|
|
|
(if public then 'view' else 'none'),
|
|
|
|
(if (attributed = NULL) then default_level else attributed_level)
|
|
|
|
)
|
|
|
|
```
|
|
|
|
|
|
|
|
… wobei die Ordnung der Zugriffsstufen der oben ersichtlichen Reihenfolge entspricht.
|
|
|
|
|
|
|
|
Einzeln aufgeführt ergibt das:
|
|
|
|
|
|
|
|
| public | default level | attributed level | result |
|
|
|
|
|-- |-- |-- |-- |
|
|
|
|
| no | none | - | none |
|
|
|
|
| no | none | none | none |
|
|
|
|
| no | none | view | view |
|
|
|
|
| no | none | edit | edit |
|
|
|
|
| no | none | admin | admin |
|
|
|
|
| no | view | - | view |
|
|
|
|
| no | view | none | none |
|
|
|
|
| no | view | view | view |
|
|
|
|
| no | view | edit | edit |
|
|
|
|
| no | view | admin | admin |
|
|
|
|
| no | edit | - | edit |
|
|
|
|
| no | edit | none | none |
|
|
|
|
| no | edit | view | view |
|
|
|
|
| no | edit | edit | edit |
|
|
|
|
| no | edit | admin | admin |
|
|
|
|
| no | admin | - | admin |
|
|
|
|
| no | admin | none | none |
|
|
|
|
| no | admin | view | view |
|
|
|
|
| no | admin | edit | edit |
|
|
|
|
| no | admin | admin | admin |
|
|
|
|
| yes | none | - | view |
|
|
|
|
| yes | none | none | view |
|
|
|
|
| yes | none | view | view |
|
|
|
|
| yes | none | edit | edit |
|
|
|
|
| yes | none | admin | admin |
|
|
|
|
| yes | view | - | view |
|
|
|
|
| yes | view | none | view |
|
|
|
|
| yes | view | view | view |
|
|
|
|
| yes | view | edit | edit |
|
|
|
|
| yes | view | admin | admin |
|
|
|
|
| yes | edit | - | edit |
|
|
|
|
| yes | edit | none | view |
|
|
|
|
| yes | edit | view | view |
|
|
|
|
| yes | edit | edit | edit |
|
|
|
|
| yes | edit | admin | admin |
|
|
|
|
| yes | admin | - | admin |
|
|
|
|
| yes | admin | none | none |
|
|
|
|
| yes | admin | view | view |
|
|
|
|
| yes | admin | edit | edit |
|
|
|
|
| yes | admin | admin | admin |
|