# Admin-Panel Setup Das Admin-Panel wurde erfolgreich erstellt! Hier ist die Anleitung zur Einrichtung. ## Was wurde erstellt: 1. **Admin-Panel Seite** (`/admin`) - Verwaltung der Dropdown-Optionen 2. **useAdminConfig Hook** - Lädt und speichert die Konfiguration 3. **Navigation erweitert** - Admin-Link erscheint für Admin-Benutzer 4. **CreateTicketModal angepasst** - Verwendet jetzt die konfigurierten Werte ## Schritt 1: Config Collection in Appwrite erstellen 1. Gehe zu `https://appwrite.webklar.com` 2. Öffne dein Projekt **woms** 3. Gehe zu **Databases** → **woms-database** 4. Klicke auf **Create Collection** 5. **Collection ID**: `config` 6. **Name**: `Admin Configuration` ### Attribute hinzufügen: | Attribut Name | Typ | Größe | Required | Array | |--------------|-----|-------|----------|-------| | `ticketTypes` | string | - | - | ✓ | | `systems` | string | - | - | ✓ | | `responseLevels` | string | - | - | ✓ | | `serviceTypes` | string | - | - | ✓ | | `priorities` | string | - | - | ✓ | **Wichtig:** Alle Attribute müssen als **Array** konfiguriert sein! ### Berechtigungen: - **Read**: `Any` (damit alle Benutzer die Optionen sehen können) - **Create**: `Users` (nur eingeloggte Benutzer können erstellen) - **Update**: `Users` (nur eingeloggte Benutzer können aktualisieren) - **Delete**: `Users` (optional) ## Schritt 2: Admin-Berechtigung konfigurieren Aktuell wird ein Benutzer als Admin erkannt, wenn: - Die Email `admin` enthält, ODER - Die Email `kenso@webklar.com` ist, ODER - Der Benutzer ein `admin` Label hat ### Option A: Email-basierte Erkennung (aktuell implementiert) Die Admin-Erkennung erfolgt in: - `src/pages/AdminPage.jsx` (Zeile ~10) - `src/components/Navbar.jsx` (Zeile ~29) Du kannst die Bedingung anpassen: ```javascript const isAdmin = user?.email?.includes('admin') || user?.email === 'deine@email.com' || user?.labels?.includes('admin') ``` ### Option B: Appwrite Labels verwenden 1. Gehe zu **Auth** → **Users** im Appwrite Dashboard 2. Wähle einen Benutzer aus 3. Füge ein **Label** hinzu: `admin` 4. Die Admin-Erkennung funktioniert dann automatisch ## Schritt 3: Admin-Panel verwenden 1. **Logge dich als Admin ein** 2. Gehe zu **Admin** in der Navigation (erscheint nur für Admins) 3. Bearbeite die Dropdown-Optionen: - **Work Order Types** - Ticket-Typen - **Affected Systems** - Betroffene Systeme - **Response Levels** - Response-Ebenen - **Service Types** - Service-Typen - **Priorities** - Prioritäten (mit Value und Label) 4. Klicke auf **Konfiguration speichern** ## Schritt 4: Testen 1. **Als Admin:** - Öffne das Admin-Panel - Ändere einige Optionen - Speichere die Konfiguration 2. **Als normaler Benutzer:** - Erstelle ein neues Ticket - Die geänderten Optionen sollten jetzt in den Dropdowns erscheinen ## Funktionsweise - **Admin-Panel**: Lädt die Konfiguration aus Appwrite und erlaubt Bearbeitung - **CreateTicketModal**: Lädt die Konfiguration automatisch und verwendet die Werte - **Fallback**: Falls die Config nicht geladen werden kann, werden Standard-Werte verwendet ## Troubleshooting ### "Collection config not found" - Stelle sicher, dass die Collection `config` erstellt wurde - Überprüfe die Collection ID (muss genau `config` sein) ### "Zugriff verweigert" - Überprüfe die Admin-Erkennung in `AdminPage.jsx` - Stelle sicher, dass deine Email den Admin-Kriterien entspricht ### "Konfiguration wird nicht geladen" - Überprüfe die Berechtigungen der `config` Collection - Stelle sicher, dass **Read** auf `Any` oder `Users` gesetzt ist ### "Änderungen werden nicht übernommen" - Überprüfe die **Update** Berechtigung der `config` Collection - Stelle sicher, dass du als Admin eingeloggt bist Viel Erfolg! 🚀