# 11. Admin-Bereich

**URL:** `http(s)://url/admin`

![Admin-Panel](../images/admin-panel.png)

> ⚠️ **Hinweis:** Der Admin-Bereich ist nur für Benutzer mit **Administrator-Rolle** sichtbar und zugänglich.

Das Admin-Panel ist die zentrale Anlaufstelle für die **Systemadministration**. Es bietet Zugriff auf folgende Bereiche:

| Kachel | Beschreibung |
|--------|--------------|
| **Users** | Benutzerverwaltung |
| **Roles & Permissions** | Rollen und Berechtigungen |
| **Devices** | Geräte-Token-Verwaltung |
| **System Extra Fields** | Systemweite Zusatzfelder für Spulen und Filamente |
| **System** | Plugins und Systemverwaltung |
| **OIDC / SSO** | OpenID Connect Single Sign-On Konfiguration |

---

## 11.1 Benutzerverwaltung (Users)

**URL:** `http(s)://url/admin/users`

![Benutzerverwaltung](../images/admin-users.png)

Hier können Administratoren alle Benutzer des Systems verwalten. Die Tabelle zeigt:

| Spalte | Beschreibung |
|--------|-------------|
| **EMAIL** | E-Mail-Adresse des Benutzers (dient als Login) |
| **DISPLAY NAME** | Anzeigename in der Anwendung |
| **STATUS** | Aktiv / Inaktiv |
| **ROLES** | Zugewiesene Rollen (z. B. Superadmin, User) |
| **ACTIONS** | Edit / Reset PW |

Verfügbare Aktionen:
- **Add User** (oben rechts) – Neuen Benutzer mit E-Mail, Passwort und Rolle erstellen
- **Edit** – E-Mail, Name oder Rolle eines Users ändern
- **Reset PW** – Passwort eines Benutzers zurücksetzen

---

## 11.2 Rollen & Berechtigungen (Roles & Permissions)

**URL:** `http(s)://url/admin/roles`

![Rollen & Berechtigungen](../images/admin-roles.png)

FilaMan enthält drei **Standard-Systemrollen**, die nicht gelöscht werden können:

| Rolle | Kennung | Beschreibung |
|-------|---------|--------------|
| **Administrator** | `admin` | Vollzugriff auf alle Funktionen und den Admin-Bereich |
| **User** | `user` | Standard-Benutzer mit Lese- und Schreibzugriff |
| **Viewer** | `viewer` | Nur-Lese-Zugriff |

Über **„Create Role"** (oben rechts) können eigene Rollen mit benutzerdefinierten Berechtigungen angelegt werden. Mit **„Edit Permissions"** lassen sich die Berechtigungen jeder Rolle granular anpassen.

Klicken Sie auf eine Rolle, um die zugeordneten Berechtigungen im rechten Bereich (**Permissions**) einzusehen und zu bearbeiten.

---

## 11.3 Geräte (Devices)

**URL:** `http(s)://url/admin/devices`

![Geräte-Verwaltung](../images/admin-devices.png)

Hier werden **externe Geräte** verwaltet, die über die FilaMan-API kommunizieren (z. B. ESP32-Waagen mit RFID-Scanner). Jedes Gerät erhält einen eigenen API-Token für die Authentifizierung.

### Geräte-Aktionen

- **Gerät hinzufügen** – Neues Gerät mit Name und optionalem Gerätecode erstellen
- **Token erstellen** – Neuen API-Token für ein Gerät generieren
- **Token widerrufen** – Zugang eines Geräts deaktivieren
- **Bearbeiten** – Gerätename und Einstellungen ändern

### Auto-Assign Konfiguration

Für jedes Gerät können folgende Einstellungen für die **automatische Spulenzuordnung** konfiguriert werden:

| Einstellung | Beschreibung |
|-------------|-------------|
| **Auto-Assign aktiviert** | Wenn aktiviert, wird nach dem Wiegen einer Spule auf diesem Gerät automatisch ein Pending-Auftrag an alle verbundenen Drucker gesendet. Sobald die Spule in einen AMS-Slot eingelegt wird, werden die Filament-Einstellungen automatisch übertragen. |
| **Auto-Assign Timeout** | Zeit in Sekunden, nach der ein ausstehender Zuordnungsauftrag automatisch verworfen wird (Standard: 60 Sekunden). Wenn innerhalb dieser Zeit keine Spule eingelegt wird, verfällt der Auftrag. |

> **Hinweis:** Auto-Assign wird pro Gerät konfiguriert, nicht pro Drucker. Wenn Auto-Assign für ein Gerät aktiviert ist, werden ALLE verbundenen Drucker benachrichtigt. Die Zuordnung erfolgt dann automatisch bei dem Drucker, in den die Spule tatsächlich eingelegt wird.

Weitere Informationen zum Ablauf: → [Drucker: Automatische Spulenzuordnung](/Docs/De/09-Drucker#automatische-spulenzuordnung-auto-assignment)

---

## 11.4 Zusatzfelder (Extra Fields)

**URL:** `http(s)://url/admin/extra-fields`

![Zusatzfelder](../images/admin-extra-fields.png)

Mit **System Extra Fields** können Administratoren zusätzliche Datenfelder für Spulen und Filamente definieren, die über die Standardfelder hinausgehen. Diese Felder werden automatisch zu allen Filamenten oder Spulen hinzugefügt.

| Spalte | Beschreibung |
|--------|-------------|
| **TARGET TYPE** | Ob das Feld für Filamente oder Spulen gilt |
| **KEY (JSON)** | Interner JSON-Schlüssel für das Feld |
| **DISPLAY LABEL** | Anzeigetext in der Benutzeroberfläche |
| **DEFAULT VALUE (OPTIONAL)** | Optionaler Standardwert |

Klicken Sie auf **„Add Field"** (oben rechts), um ein neues Zusatzfeld zu erstellen.

Beispiele für Zusatzfelder:
- „Trocknungszeit" für Spulen
- „Drucktemperatur" für Filamente
- „Lieferant" als ergänzendes Herstellerfeld

Wenn Zusatzfelder erstellt wurden, erscheinen diese als neue Eingabefelder in den entsprechenden Formularen (Spule hinzufügen, Filament hinzufügen).

---

## 11.5 System (Plugin-Verwaltung)

**URL:** `http(s)://url/admin/system`

![System-Einstellungen](../images/admin-system.png)

Der System-Bereich ist die zentrale Stelle für die **Plugin-Verwaltung**. Hier werden alle installierten Plugins angezeigt und verwaltet.

### Plugin-Übersicht

Die Plugin-Tabelle zeigt alle installierten Plugins mit folgenden Spalten:

| Spalte | Beschreibung |
|--------|-------------|
| **NAME** | Name und kurze Beschreibung des Plugins |
| **VERSION** | Installierte Version (z. B. 2.1.10) |
| **TYPE** | Art des Plugins: **Driver** (Druckertreiber), **Import** (Datenimport) oder **Integration** (Drittanbieter-Anbindung) |
| **AUTHOR** | Autor des Plugins |
| **STATUS** | Aktiviert/Deaktiviert — per Toggle-Schalter umschaltbar |
|| **ACTIONS** | Details / Aktualisieren (wenn Update verfügbar) / Öffnen / Deinstallieren |

### Plugin installieren

Klicken Sie auf **„Install Plugin"** oben rechts. Es öffnet sich ein Dialog mit zwei Installationsmöglichkeiten:

#### Option 1: Aus der Plugin-Registry installieren (empfohlen)

1. Im Dropdown **„Install from Registry"** werden alle verfügbaren Plugins angezeigt
2. Die Liste wird automatisch aus dem offiziellen Plugin-Repository ([Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins)) auf GitHub geladen
3. Wählen Sie das gewünschte Plugin aus dem Dropdown — Name, Version und Beschreibung werden angezeigt
4. Klicken Sie auf **„Install Plugin"** um die Installation zu starten
5. FilaMan lädt das Plugin automatisch herunter, validiert es und installiert es

#### Option 2: ZIP-Datei manuell hochladen

1. Unterhalb des Registry-Dropdowns befindet sich der Bereich **„Plugin ZIP File"**
2. Ziehen Sie eine `.zip`-Datei per **Drag & Drop** in den markierten Bereich — oder klicken Sie darauf, um eine Datei auszuwählen
3. Die Datei wird automatisch validiert (Struktur, Manifest, Sicherheit)
4. Bei erfolgreicher Validierung erscheint eine Bestätigung mit Plugin-Details
5. Klicken Sie auf **„Install Plugin"** um die Installation abzuschließen

> **Hinweis:** Manuelle ZIP-Uploads sind für Entwickler oder für Plugins gedacht, die noch nicht in der offiziellen Registry verfügbar sind.

### Updates prüfen

Klicken Sie auf **„Check for Updates"** oben rechts neben dem Install-Button.

- FilaMan vergleicht die installierten Plugin-Versionen mit den neuesten Versionen in der Registry
- Wenn Updates verfügbar sind, wird eine Benachrichtigung mit der Anzahl der verfügbaren Updates angezeigt
- Jedes Plugin mit verfügbarem Update erhält in der Plugin-Tabelle einen **Update-Button** mit der neuen Versionsnummer
- Klicken Sie auf diesen Button, um das jeweilige Plugin direkt auf die neueste Version zu aktualisieren

### Plugin aktivieren / deaktivieren

Jedes Plugin kann über den **Toggle-Schalter** in der Status-Spalte aktiviert oder deaktiviert werden:

- **Aktiviert** — Das Plugin ist aktiv und seine Funktionen stehen zur Verfügung (z. B. Druckertreiber werden geladen)
- **Deaktiviert** — Das Plugin bleibt installiert, ist aber inaktiv. Bereits verbundene Drucker werden getrennt

### Plugin deinstallieren

1. Klicken Sie auf **„Uninstall"** in der Actions-Spalte des Plugins
2. Bestätigen Sie die Deinstallation im Bestätigungsdialog
3. Es erscheint eine zusätzliche Abfrage, ob auch die **Plugin-Daten** (z. B. Zusatzfelder, Drucker-Parameter) gelöscht werden sollen:
   - **Ja** — Entfernt das Plugin und alle zugehörigen Daten (Zusatzfelder, gespeicherte Parameter)
   - **Nein** — Entfernt nur das Plugin, die Daten bleiben erhalten (nützlich bei Neuinstallation)

### Plugin-Details

Klicken Sie auf **„Details"** um ausführliche Informationen zu einem Plugin anzuzeigen:

- Plugin-Name, Version und Beschreibung
- Plugin-Typ (Driver / Import / Integration)
- Autor und Homepage
- Unterstützte Fähigkeiten (z. B. AMS-Unterstützung, RFID, Auto-Match)
- Liste der vom Plugin erstellten Drucker-Parameter

---

## 11.6 OIDC / SSO

**URL:** `http(s)://url/admin/oidc`

> ⚠️ **Hinweis:** Die OIDC-Kachel im Admin-Panel ist nur klickbar, wenn FilaMan über **HTTPS** aufgerufen wird. Bei HTTP-Verbindungen zeigt die Kachel einen Hinweis, dass OIDC nur über HTTPS funktioniert, und ist nicht klickbar.

In diesem Bereich können Administratoren **OpenID Connect (OIDC)** für Single Sign-On (SSO) konfigurieren. Benutzer können sich dann über einen externen Identity Provider anmelden (z. B. Authentik, Keycloak, Azure AD).

### Konfigurationsfelder

| Einstellung | Beschreibung |
|-------------|-------------|
| **Aktiviert** | Toggle zum Aktivieren/Deaktivieren des OIDC-Logins |
| **Issuer URL** | Die Issuer-URL des OIDC-Providers (muss `https://` sein) |
| **Client ID** | Die beim OIDC-Provider registrierte Client-ID |
| **Client Secret** | Das Client-Secret (wird verschlüsselt in der Datenbank gespeichert) |
| **Scopes** | Angeforderte OIDC-Scopes (Standard: `openid email profile`) |
| **Button-Text** | Benutzerdefinierter Text für den SSO-Button auf der Login-Seite (z. B. „Login mit Authentik") |

### Voraussetzungen

- **HTTPS erforderlich** — OIDC funktioniert nur, wenn FilaMan über HTTPS aufgerufen wird
- **Umgebungsvariable `OIDC_ENC_KEY`** — Muss gesetzt sein, um das Client-Secret zu verschlüsseln. Generieren mit:
  ```bash
  openssl rand -hex 32
  ```
- **Nur bestehende Benutzer** — Nur Benutzer, die bereits in FilaMan existieren, können sich per OIDC anmelden. Die E-Mail-Adresse des Providers muss mit einem bestehenden Benutzerkonto übereinstimmen. Die E-Mail muss vom Provider als verifiziert markiert sein.
- **Keine automatische Erstellung** — OIDC-Login erstellt keine neuen Benutzerkonten

---

## 11.7 Gefahrenzone

Am unteren Ende des Admin-Panels befindet sich die rot markierte **Danger Zone** mit einer kritischen Aktion:

> ⛔ **„Delete all data"**  
> Löscht **dauerhaft** alle Spulen, Filamente, Hersteller, Farben, Lagerorte und Drucker einschließlich aller Logs und Ereignisse.  
> **Benutzerkonten, Rollen, Berechtigungen und Geräte bleiben davon unberührt.**  
> Diese Aktion kann **nicht rückgängig gemacht** werden!

---

← [Zurück: Einstellungen](/Docs/De/10-Einstellungen) | [Weiter: Farbverwaltung →](/Docs/De/12-Farbverwaltung)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9