3.7 KiB
3.7 KiB
Admin-Panel Setup
Das Admin-Panel wurde erfolgreich erstellt! Hier ist die Anleitung zur Einrichtung.
Was wurde erstellt:
- Admin-Panel Seite (
/admin) - Verwaltung der Dropdown-Optionen - useAdminConfig Hook - Lädt und speichert die Konfiguration
- Navigation erweitert - Admin-Link erscheint für Admin-Benutzer
- CreateTicketModal angepasst - Verwendet jetzt die konfigurierten Werte
Schritt 1: Config Collection in Appwrite erstellen
- Gehe zu
https://appwrite.webklar.com - Öffne dein Projekt woms
- Gehe zu Databases → woms-database
- Klicke auf Create Collection
- Collection ID:
config - 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
adminenthält, ODER - Die Email
kenso@webklar.comist, ODER - Der Benutzer ein
adminLabel 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:
const isAdmin = user?.email?.includes('admin') ||
user?.email === 'deine@email.com' ||
user?.labels?.includes('admin')
Option B: Appwrite Labels verwenden
- Gehe zu Auth → Users im Appwrite Dashboard
- Wähle einen Benutzer aus
- Füge ein Label hinzu:
admin - Die Admin-Erkennung funktioniert dann automatisch
Schritt 3: Admin-Panel verwenden
- Logge dich als Admin ein
- Gehe zu Admin in der Navigation (erscheint nur für Admins)
- 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)
- Klicke auf Konfiguration speichern
Schritt 4: Testen
-
Als Admin:
- Öffne das Admin-Panel
- Ändere einige Optionen
- Speichere die Konfiguration
-
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
configerstellt wurde - Überprüfe die Collection ID (muss genau
configsein)
"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
configCollection - Stelle sicher, dass Read auf
AnyoderUsersgesetzt ist
"Änderungen werden nicht übernommen"
- Überprüfe die Update Berechtigung der
configCollection - Stelle sicher, dass du als Admin eingeloggt bist
Viel Erfolg! 🚀