Sonderzeichenumgebaut auf deutsch

This commit is contained in:
Eskimue
2026-04-05 13:18:36 +02:00
parent 23df0ed163
commit 2689a32ed6
18 changed files with 178 additions and 678 deletions
+34 -34
View File
@@ -1,22 +1,22 @@
# Rechtesystem
Diese Anleitung beschreibt das aktuelle Rechtesystem fuer die Seiten unter `public/`.
Diese Anleitung beschreibt das aktuelle Rechtesystem für die Seiten unter `public/`.
## Grundidee
Aktuell gilt:
- `admin` und `master` haben Vollzugriff auf alle Seiten unter `public/`
- normale Benutzer sehen standardmaessig keine geschuetzten Seiten
- einzelne Seiten koennen pro Benutzer durch einen `master` freigegeben werden
- das Header-Menue passt sich an die hinterlegten Seitenrechte an
- normale Benutzer sehen standardmäßig keine geschützten Seiten
- einzelne Seiten können pro Benutzer durch einen `master` freigegeben werden
- das Header-Menü passt sich an die hinterlegten Seitenrechte an
## Rollen
Es gibt zurzeit diese Rollen:
- `user`
Normale Benutzerrolle ohne automatischen Zugriff auf die geschuetzten Seiten
Normale Benutzerrolle ohne automatischen Zugriff auf die geschützten Seiten
- `admin`
Vollzugriff auf alle Seiten unter `public/`
- `master`
@@ -29,15 +29,15 @@ Die Rollen-Helfer liegen in [`public/auth_helpers.php`](../public/auth_helpers.p
Die zentrale Rechtebasis besteht aus drei Bausteinen:
- [`public/auth_helpers.php`](../public/auth_helpers.php)
Enthaelt Rollen-Helfer, Allowlist und die Liste der freigebbaren Seiten
Enthält Rollen-Helfer, Allowlist und die Liste der freigebbaren Seiten
- [`public/header.php`](../public/header.php)
Prueft beim Aufruf einer Seite den Zugriff und baut das Menue passend zu den Rechten
Prüft beim Aufruf einer Seite den Zugriff und baut das Menü passend zu den Rechten
- [`public/admin_users.php`](../public/admin_users.php)
Enthaelt die Benutzerverwaltung und die Seitenmatrix fuer `master`
Enthält die Benutzerverwaltung und die Seitenmatrix für `master`
## Datenbank
Fuer die Seitenfreigaben wird diese Tabelle verwendet:
Für die Seitenfreigaben wird diese Tabelle verwendet:
- `app_user_page_permissions`
@@ -54,10 +54,10 @@ Wichtige Spalten:
Wichtig:
- Nicht nur der Dateiname zaehlt.
- Nicht nur der Dateiname zählt.
- Unterordner-Seiten werden mit vollem relativen Pfad gespeichert.
## Oeffentliche Ausnahmen
## Öffentliche Ausnahmen
Einige Seiten bleiben ohne Seitenfreigabe erreichbar. Diese stehen in der Allowlist in [`public/auth_helpers.php`](../public/auth_helpers.php):
@@ -65,37 +65,37 @@ Einige Seiten bleiben ohne Seitenfreigabe erreichbar. Diese stehen in der Allowl
- `register.php`
- `logout.php`
## Wie der Zugriff geprueft wird
## Wie der Zugriff geprüft wird
Beim Laden einer Seite mit gemeinsamem Header passiert Folgendes:
1. `header.php` ermittelt den aktuellen `page_key`
2. Wenn der Benutzer `admin` oder `master` ist, ist der Zugriff erlaubt
3. Wenn die Seite in der Allowlist steht, ist der Zugriff erlaubt
4. Sonst wird in `app_user_page_permissions` geprueft, ob der Benutzer genau diese Seite sehen darf
4. Sonst wird in `app_user_page_permissions` geprüft, ob der Benutzer genau diese Seite sehen darf
5. Wenn nein, kommt `403 Zugriff verweigert`
Wichtig:
- Eine einzelne Seitenfreigabe macht den Benutzer nicht zu `admin`
- dadurch bleibt das Menue auf seine wirklich erlaubten Seiten beschraenkt
- dadurch bleibt das Menü auf seine wirklich erlaubten Seiten beschränkt
## Wie das Menue funktioniert
## Wie das Menü funktioniert
Das Header-Menue wird ebenfalls in [`public/header.php`](../public/header.php) aufgebaut.
Das Header-Menü wird ebenfalls in [`public/header.php`](../public/header.php) aufgebaut.
Dabei gilt:
- ausgeloggte Besucher sehen nur `Anmelden` und `Registrieren`
- `admin` und `master` sehen das volle Menue
- normale Benutzer sehen nur die Menuepunkte, deren `href` in ihren Seitenfreigaben vorhanden ist
- auch der Kontobereich unten im Menue wird entsprechend gefiltert
- `admin` und `master` sehen das volle Menü
- normale Benutzer sehen nur die Menüpunkte, deren `href` in ihren Seitenfreigaben vorhanden ist
- auch der Kontobereich unten im Menü wird entsprechend gefiltert
Damit das funktioniert, muessen Menuelink und `page_key` exakt zusammenpassen.
Damit das funktioniert, müssen Menülink und `page_key` exakt zusammenpassen.
Beispiel:
- Menuelink: `geocron/index.php`
- Menülink: `geocron/index.php`
- Datenbankeintrag: `geocron/index.php`
## Wie ein Master Seiten freigibt
@@ -105,8 +105,8 @@ Die Freigaben werden in [`public/admin_users.php`](../public/admin_users.php) ve
Ablauf:
1. Als `master` anmelden
2. `Benutzerverwaltung` oeffnen
3. Im Bereich `Seitenfreigaben` den gewuenschten Benutzer waehlen
2. `Benutzerverwaltung` öffnen
3. Im Bereich `Seitenfreigaben` den gewünschten Benutzer wählen
4. Haken bei den erlaubten Seiten setzen
5. Speichern
@@ -121,20 +121,20 @@ Die Liste der freigebaren Seiten steht zentral in [`public/auth_helpers.php`](..
- `manageablePublicPages()`
Nur Seiten, die dort eingetragen sind, koennen:
Nur Seiten, die dort eingetragen sind, können:
- in der Matrix erscheinen
- einzeln fuer Benutzer freigegeben werden
- sauber im Menue gefiltert werden
- einzeln für Benutzer freigegeben werden
- sauber im Menü gefiltert werden
## Neue Seite ins Rechtesystem aufnehmen
Wenn eine neue Seite unter `public/` dazukommt, sind in der Regel diese Schritte noetig:
Wenn eine neue Seite unter `public/` dazukommt, sind in der Regel diese Schritte nötig:
1. Seite anlegen
2. Seite so bauen, dass sie den gemeinsamen Header nutzt
3. In `manageablePublicPages()` eintragen
4. Falls noetig als Menuepunkt in [`public/header.php`](../public/header.php) eintragen
4. Falls nötig als Menüpunkt in [`public/header.php`](../public/header.php) eintragen
5. Darauf achten, dass `href` und `page_key` exakt gleich sind
Beispiel:
@@ -143,13 +143,13 @@ Beispiel:
'beispielseite.php' => 'Beispielseite',
```
Oder fuer Unterordner:
Oder für Unterordner:
```php
'tools/beispiel.php' => 'Beispielseite',
```
## Wichtige Regel fuer Unterordner
## Wichtige Regel für Unterordner
Bei Unterordnern niemals nur `index.php` verwenden.
@@ -161,13 +161,13 @@ Falsch:
- `index.php`
Die Seitenerkennung dafuer macht `currentPublicPageKey()` in [`public/auth_helpers.php`](../public/auth_helpers.php).
Die Seitenerkennung dafür macht `currentPublicPageKey()` in [`public/auth_helpers.php`](../public/auth_helpers.php).
## Aktueller Stand
Der aktuelle Zustand ist bewusst streng:
- standardmaessig nur `admin` oder `master`
- normale Benutzer nur ueber explizite Seitenfreigaben
- standardmäßig nur `admin` oder `master`
- normale Benutzer nur über explizite Seitenfreigaben
Spaeter kann entschieden werden, welche Seiten wieder standardmaessig fuer normale Benutzer sichtbar sein sollen.
Später kann entschieden werden, welche Seiten wieder standardmäßig für normale Benutzer sichtbar sein sollen.