Add automatic role assignment for new and existing users

- Implemented auto-assignment of the 'private' role for new users upon first login, ensuring they have access to products.
- Added a safety check to assign the 'private' role to existing users without roles during login.
- Updated relevant documentation to reflect these changes in role management and visibility patterns.
This commit is contained in:
Bastian Masanek
2025-11-02 10:40:52 +01:00
parent 268d91f548
commit cb4810893c
4 changed files with 69 additions and 2 deletions

View File

@@ -1544,6 +1544,11 @@ try {
**Automatische Rollen-Zuweisung (MVP):**
- Neue User erhalten bei erster Anmeldung automatisch die Rolle `private` (Status: `approved`)
- Implementierung in `server/api/auth/login.post.ts` nach User-Profile-Erstellung
- Safety-Check: Bestehende User ohne Rollen erhalten ebenfalls `private` Rolle
**Opt-in Sichtbarkeit:**
- Produkte OHNE `product_role_visibility` Einträge sind für NIEMANDEN sichtbar
- Produkte MIT Einträgen sind nur für User mit passender `approved` Rolle sichtbar
### 4.2 Drizzle Schema Definition

View File

@@ -143,10 +143,14 @@ Das System nutzt ein rollenbasiertes Modell zur Steuerung der Produktsichtbarkei
#### 3.3.3 Rollenzuweisung (MVP)
**Automatische Rollen-Zuweisung (MVP):**
- Neue User erhalten bei erster Anmeldung automatisch die Rolle `private` (Status: `approved`)
- Implementierung in `server/api/auth/login.post.ts`
- Falls ein bestehender User keine Rolle hat (z.B. Legacy-Daten), wird ebenfalls `private` zugewiesen
**Manuelle Zuweisung via Datenbank:**
- Rollen werden manuell via Drizzle Studio zugewiesen
- Weitere Rollen werden manuell via Drizzle Studio zugewiesen
- Status immer `approved` (keine Anträge im MVP)
- Standard: Neue User erhalten automatisch Rolle `private`
**Automatische Produkt-Rollen-Zuweisung (ERP-Import):**
@@ -202,6 +206,7 @@ Beim Import von Produkten aus dem NAV ERP werden Rollen basierend auf der Katego
- Bestätigungs-E-Mail wird von Cidaas versendet
- E-Mail muss bestätigt werden bevor Login möglich ist
- Nach erster Anmeldung wird User-Profil in lokaler DB angelegt (über OAuth2 Callback)
- **Automatische Rollen-Zuweisung**: Bei Erstellung des User-Profils wird automatisch die Rolle "Privatperson" (`private`) zugewiesen
- User erhält Fehlermeldung wenn E-Mail bereits registriert
- Validierung: Client-seitig (UX) + Server-seitig (Sicherheit)
- Übersetzung in Deutsch und Englisch