75 lines
2.1 KiB
Markdown
75 lines
2.1 KiB
Markdown
# Admin-Rolle in Appwrite einrichten
|
|
|
|
Die Admin-Erkennung verwendet jetzt die **Labels** aus Appwrite. Ein Benutzer ist Admin, wenn er das Label `admin` hat.
|
|
|
|
## Schritt 1: Admin-Label in Appwrite hinzufügen
|
|
|
|
### Option A: Über das Appwrite Dashboard
|
|
|
|
1. Gehe zu `https://appwrite.webklar.com`
|
|
2. Öffne dein Projekt **woms**
|
|
3. Gehe zu **Auth** → **Users**
|
|
4. Wähle den Benutzer aus, der Admin werden soll
|
|
5. Klicke auf **Edit** oder öffne die Benutzer-Details
|
|
6. Scrolle zu **Labels** (oder **Custom Attributes**)
|
|
7. Klicke auf **Add Label** oder **+**
|
|
8. Gib `admin` ein
|
|
9. Klicke auf **Save** oder **Update**
|
|
|
|
### Option B: Über die Appwrite API (für mehrere Benutzer)
|
|
|
|
Du kannst auch Labels programmatisch hinzufügen, aber das ist normalerweise nicht nötig.
|
|
|
|
## Schritt 2: Überprüfen
|
|
|
|
Nach dem Hinzufügen des Labels:
|
|
|
|
1. **Logge dich aus** und wieder **ein** (damit die Session aktualisiert wird)
|
|
2. Oder lade die Seite neu (F5)
|
|
3. Der **Admin**-Link sollte jetzt in der Navigation erscheinen
|
|
4. Du solltest Zugriff auf das Admin-Panel haben
|
|
|
|
## Schritt 3: Mehrere Admins hinzufügen
|
|
|
|
Um weitere Admins hinzuzufügen:
|
|
|
|
1. Wiederhole Schritt 1 für jeden Benutzer
|
|
2. Füge das Label `admin` hinzu
|
|
3. Die Benutzer müssen sich neu einloggen
|
|
|
|
## Wie es funktioniert
|
|
|
|
- **AuthContext**: Prüft ob `user.labels` das Label `admin` enthält
|
|
- **Navbar**: Zeigt den Admin-Link nur an, wenn `isAdmin === true`
|
|
- **AdminPage**: Blockiert den Zugriff, wenn der Benutzer kein Admin ist
|
|
|
|
## Debugging
|
|
|
|
Falls der Admin-Link nicht erscheint:
|
|
|
|
1. **Browser-Konsole öffnen** (F12)
|
|
2. Prüfe das User-Objekt:
|
|
```javascript
|
|
// In der Browser-Konsole:
|
|
console.log(user)
|
|
// Prüfe ob user.labels das Array ['admin'] enthält
|
|
```
|
|
|
|
3. **Überprüfe in Appwrite:**
|
|
- Gehe zu **Auth** → **Users**
|
|
- Öffne deinen Benutzer
|
|
- Stelle sicher, dass das Label `admin` vorhanden ist
|
|
|
|
4. **Session aktualisieren:**
|
|
- Logge dich aus und wieder ein
|
|
- Oder lade die Seite neu
|
|
|
|
## Wichtig
|
|
|
|
- Das Label muss genau `admin` heißen (kleingeschrieben)
|
|
- Der Benutzer muss sich nach dem Hinzufügen des Labels neu einloggen
|
|
- Labels sind case-sensitive
|
|
|
|
Viel Erfolg! 🚀
|
|
|