woms 3.0
This commit is contained in:
116
ADMIN_PANEL_SETUP.md
Normal file
116
ADMIN_PANEL_SETUP.md
Normal file
@@ -0,0 +1,116 @@
|
||||
# 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! 🚀
|
||||
|
||||
Reference in New Issue
Block a user