Deploy user requested features and fixes, add Galerie menu link.
This commit is contained in:
33
Brain.md
33
Brain.md
@@ -81,8 +81,10 @@ Photography/
|
|||||||
8. **Download-Button**: In der Lightbox kann jedes Bild heruntergeladen werden
|
8. **Download-Button**: In der Lightbox kann jedes Bild heruntergeladen werden
|
||||||
|
|
||||||
### Zugriffslogik
|
### Zugriffslogik
|
||||||
- **Nicht eingeloggt / Admin**: Alle Bilder sichtbar (oeffentliche Galerie)
|
- **Nicht eingeloggt**: Nur Root-Bilder (direkt in Websitebilder/) sichtbar
|
||||||
- **Eingeloggter Nutzer**: Nur zugewiesene Bilder sichtbar + Download
|
- **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-Integration
|
||||||
- **Nextcloud-Pfad**: `/volume1/nextcloud/data/Tom/files/Websitebilder`
|
- **Nextcloud-Pfad**: `/volume1/nextcloud/data/Tom/files/Websitebilder`
|
||||||
@@ -99,6 +101,19 @@ Photography/
|
|||||||
- **Datenbank**: SQLite unter `/app/data/database.sqlite`
|
- **Datenbank**: SQLite unter `/app/data/database.sqlite`
|
||||||
- **Passwort-Hashing**: bcryptjs (10 Rounds)
|
- **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
|
### Standard-Admin
|
||||||
- **Username**: `admin`
|
- **Username**: `admin`
|
||||||
- **Passwort**: `admin123` (SOFORT AENDERN nach erstem Login!)
|
- **Passwort**: `admin123` (SOFORT AENDERN nach erstem Login!)
|
||||||
@@ -110,10 +125,13 @@ Photography/
|
|||||||
| `/api/auth/login` | POST | Login (username, password) |
|
| `/api/auth/login` | POST | Login (username, password) |
|
||||||
| `/api/auth/logout` | POST | Logout (Cookie loeschen) |
|
| `/api/auth/logout` | POST | Logout (Cookie loeschen) |
|
||||||
| `/api/auth/me` | GET | Aktueller User |
|
| `/api/auth/me` | GET | Aktueller User |
|
||||||
| `/api/admin/users` | GET/POST | Nutzer auflisten / erstellen |
|
| `/api/auth/change-password` | POST | Eigenes Passwort aendern |
|
||||||
| `/api/admin/users/:id` | DELETE | Nutzer loeschen |
|
| `/api/admin/users` | GET/POST | Nutzer auflisten / erstellen (mit Rolle) |
|
||||||
| `/api/admin/assign` | GET/POST | Bildzuweisungen anzeigen / setzen |
|
| `/api/admin/users/:id` | DELETE | Nutzer loeschen (nicht sich selbst) |
|
||||||
| `/images/fulls/` | GET | Bilderliste (gefiltert nach User-Rolle) |
|
| `/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)
|
## Wichtige Konfiguration (_config.yml)
|
||||||
|
|
||||||
@@ -179,6 +197,9 @@ Photography/
|
|||||||
- [x] Admin-Dashboard (Nutzerverwaltung, Bildzuweisung)
|
- [x] Admin-Dashboard (Nutzerverwaltung, Bildzuweisung)
|
||||||
- [x] Kunden-Portal (zugewiesene Bilder + Download)
|
- [x] Kunden-Portal (zugewiesene Bilder + Download)
|
||||||
- [x] Watchtower fuer automatische Updates
|
- [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)
|
- [ ] Footer Bio-Text schreiben (optional)
|
||||||
- [ ] Farbschema/Design anpassen
|
- [ ] Farbschema/Design anpassen
|
||||||
- [ ] Eigene Kategorien/Alben erstellen (Feature-Erweiterung)
|
- [ ] Eigene Kategorien/Alben erstellen (Feature-Erweiterung)
|
||||||
|
|||||||
@@ -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
|
## Auto-Update via Watchtower
|
||||||
|
|
||||||
### Beschreibung
|
### Beschreibung
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ layout: default
|
|||||||
<h1><a href="index.html"><strong>{{ site.header.title }}</strong> {{ site.header.subtitle }}</a></h1>
|
<h1><a href="index.html"><strong>{{ site.header.title }}</strong> {{ site.header.subtitle }}</a></h1>
|
||||||
<nav>
|
<nav>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li><a href="#galerie" id="galerie-link">Galerie</a></li>
|
||||||
<li><a href="#login-panel" id="login-nav">Login <i class="fa fa-user"></i></a></li>
|
<li><a href="#login-panel" id="login-nav">Login <i class="fa fa-user"></i></a></li>
|
||||||
<li><a href="#footer">About <i class="fa fa-info-circle text-fg"></i></a></li>
|
<li><a href="#footer">About <i class="fa fa-info-circle text-fg"></i></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Reference in New Issue
Block a user