diff --git a/Brain.md b/Brain.md index dcf4aa7..f7f83e3 100644 --- a/Brain.md +++ b/Brain.md @@ -81,8 +81,10 @@ Photography/ 8. **Download-Button**: In der Lightbox kann jedes Bild heruntergeladen werden ### Zugriffslogik -- **Nicht eingeloggt / Admin**: Alle Bilder sichtbar (oeffentliche Galerie) -- **Eingeloggter Nutzer**: Nur zugewiesene Bilder sichtbar + Download +- **Nicht eingeloggt**: Nur Root-Bilder (direkt in Websitebilder/) sichtbar +- **Admin**: Alle Bilder (Root + alle Unterordner) sichtbar +- **User (permanent)**: Root-Bilder + zugewiesene Unterordner +- **Client (30 Tage)**: Root-Bilder + zugewiesene Unterordner, Account laeuft nach 30 Tagen ab ### Nextcloud-Integration - **Nextcloud-Pfad**: `/volume1/nextcloud/data/Tom/files/Websitebilder` @@ -99,6 +101,19 @@ Photography/ - **Datenbank**: SQLite unter `/app/data/database.sqlite` - **Passwort-Hashing**: bcryptjs (10 Rounds) +### Rollen +| Rolle | Beschreibung | Ablauf | +|---|---|---| +| `admin` | Voller Zugriff, Nutzerverwaltung, alle Bilder | Nie | +| `user` | Root-Bilder + zugewiesene Ordner | Nie | +| `client` | Root-Bilder + zugewiesene Ordner | 30 Tage nach Erstellung | + +### Ordner-basierte Bildzuweisung +- Bilder direkt in `Websitebilder/` = oeffentlich (fuer alle sichtbar) +- Bilder in Unterordnern (z.B. `Websitebilder/Hochzeit/`) = nur fuer zugewiesene Nutzer +- Zuweisung erfolgt auf Ordner-Ebene (nicht einzelne Bilder) +- Tabelle `user_folders` speichert Zuweisungen (user_id, folder_name) + ### Standard-Admin - **Username**: `admin` - **Passwort**: `admin123` (SOFORT AENDERN nach erstem Login!) @@ -110,10 +125,13 @@ Photography/ | `/api/auth/login` | POST | Login (username, password) | | `/api/auth/logout` | POST | Logout (Cookie loeschen) | | `/api/auth/me` | GET | Aktueller User | -| `/api/admin/users` | GET/POST | Nutzer auflisten / erstellen | -| `/api/admin/users/:id` | DELETE | Nutzer loeschen | -| `/api/admin/assign` | GET/POST | Bildzuweisungen anzeigen / setzen | -| `/images/fulls/` | GET | Bilderliste (gefiltert nach User-Rolle) | +| `/api/auth/change-password` | POST | Eigenes Passwort aendern | +| `/api/admin/users` | GET/POST | Nutzer auflisten / erstellen (mit Rolle) | +| `/api/admin/users/:id` | DELETE | Nutzer loeschen (nicht sich selbst) | +| `/api/admin/users/:id/password` | PUT | Admin aendert User-Passwort | +| `/api/admin/folders` | GET | Verfuegbare Unterordner auflisten | +| `/api/admin/assign` | GET/POST | Ordner-Zuweisungen anzeigen / setzen | +| `/images/fulls/` | GET | Bilderliste (gefiltert nach User-Rolle + Ordnern) | ## Wichtige Konfiguration (_config.yml) @@ -179,6 +197,9 @@ Photography/ - [x] Admin-Dashboard (Nutzerverwaltung, Bildzuweisung) - [x] Kunden-Portal (zugewiesene Bilder + Download) - [x] Watchtower fuer automatische Updates +- [x] 3-Rollen-System (admin/user/client mit 30-Tage-Ablauf) +- [x] Ordner-basierte Bildzuweisung (Unterordner = private Kundenbilder) +- [x] Passwort-Aenderung (Self-Service + Admin kann fuer andere aendern) - [ ] Footer Bio-Text schreiben (optional) - [ ] Farbschema/Design anpassen - [ ] Eigene Kategorien/Alben erstellen (Feature-Erweiterung) diff --git a/Feature-Request.md b/Feature-Request.md index d9f482f..2dc3148 100644 --- a/Feature-Request.md +++ b/Feature-Request.md @@ -21,6 +21,32 @@ Die Website wurde um ein Login-System mit Nutzerverwaltung erweitert. --- +## Rollen-System & Ordner-Zuweisung + +### Beschreibung +Erweitertes Nutzermanagement mit 3 Rollen und ordnerbasierter Bildzuweisung. + +### Anforderungen + +**3 Rollen:** +- Admin: Voller Zugriff auf alle Bilder und Nutzerverwaltung +- User: Permanenter Account, sieht Root-Bilder + zugewiesene Ordner +- Client: Temporaerer Account (30 Tage), sieht Root-Bilder + zugewiesene Ordner + +**Ordner-basierte Zuweisung:** +- Bilder direkt im Websitebilder-Ordner = oeffentlich fuer alle +- Unterordner (z.B. Hochzeit, Portrait) = nur fuer zugewiesene Nutzer +- Admin weist ganze Ordner einem Nutzer zu (nicht einzelne Bilder) + +**Passwort-Aenderung:** +- Jeder Nutzer kann sein eigenes Passwort aendern +- Admin kann Passwoerter beliebiger Nutzer aendern +- Neue Admins erstellen und bestehende loeschen moeglich + +### Status: Umgesetzt + +--- + ## Auto-Update via Watchtower ### Beschreibung diff --git a/index.html b/index.html index 9d2a652..b032112 100644 --- a/index.html +++ b/index.html @@ -10,6 +10,7 @@ layout: default