Rechte- und Rollenkonzept

Die Future-Box steuert den Zugriff über sechs Rollen mit jeweils unterschiedlichen Berechtigungen. Dieser Abschnitt enthält die vollständige Rollen- und Permission-Matrix sowie eine Erläuterung jeder einzelnen Berechtigung.

Überblick

Das Berechtigungsmodell basiert auf der Bibliothek Spatie Laravel Permission. Drei Bausteine arbeiten zusammen:

  1. Rolle — eine benannte Sammlung von Permissions, einer Person zugewiesen.
  2. Permission — ein einzelnes, fein granuliertes Recht (z. B. edit_user, use_portfolio).
  3. Policy — modellbezogene Zugriffsregeln, die zusätzlich zu Permissions greifen (z. B. „nur eigene Memos editierbar“).

Jede angemeldete Person hat genau eine Rolle. Permissions ergeben sich aus dieser Rolle. Policies prüfen darüber hinaus für einzelne Datensätze, ob die Aktion zulässig ist.


Die sechs Rollen

Rolle (UI-Standardname)Code-SchlüsselDB-NameRenaming-SchlüsselKurzbeschreibung
🛡️ Superadminsuperadmin„Superadmin“Technische Höchstrolle, hat alle Rechte
⚙️ Administratoradmin„Admin“role_adminVerwaltet Nutzer:innen und Konfiguration der Instanz
👩‍🏫 Lehrpersonteacher„Lehrperson“role_teacherUnterstützt Lernende; sieht Dashboard, kann Aufgaben stellen, Feedback mit Datei-Anhang geben
🎓 Auszubildenderuser„Azubi“role_apprenticeStandardrolle für Lernende; kann Stacks und Memos pflegen
🛠️ Ausbildertrainer„Ausbilder“role_trainerSieht Trainer-Dashboard mit zugeordneten Auszubildenden, gibt Berichtshefte frei
🏛️ Kammer-Adminchamberadmin„Kammer-Admin“role_chamberSieht Kammer-Dashboard, prüft eingereichte Berichtshefte, verwaltet Kammer-User

⚠️ Hinweis: Die UI-Namen lassen sich über die Renaming-Funktion anpassen (z. B. „Auszubildender“ → „Lernende:r“ oder „Schüler:in“). Die Code-Schlüssel und DB-Namen bleiben unverändert und sind die technische Grundlage für alle Berechtigungs-Prüfungen.


Permission-Matrix

Die folgende Tabelle zeigt, welche Permission jede Rolle in der Standardkonfiguration besitzt:

Permission🛡️ Superadmin⚙️ Admin👩‍🏫 Lehrperson🎓 Auszubildender🏛️ Kammer-Admin🛠️ Ausbilder
view_administration
view_configuration
edit_all_user
edit_user
edit_chamber_users
edit_config
edit_settings
edit_renamings
edit_all_templates
edit_jobs
edit_task_description
edit_tasks
feedback_upload_media
view_dashboard
use_portfolio
view_trainer
view_chamber_admin

💡 Lese-Hinweis: Die ✅ in der Matrix entstehen durch eine additive Vererbung: Superadmin enthält Admin enthält Lehrperson enthält Auszubildender. Kammer-Admin und Ausbilder haben eigene Permission-Sets, die nicht automatisch in die anderen Rollen einfließen.


Was bewirkt jede Permission?

Verwaltungs-Permissions

PermissionWirkung
view_administrationZugang zum /administration-Bereich (Mittel: IsAdmin-Middleware)
view_configurationEintrag „System-Konfiguration“ in der Footer-Navigation
edit_all_userVolle User-Administration (auch über Tenant-Grenzen hinweg, technisch reserviert für Superadmin)
edit_userNutzer:innen anlegen, bearbeiten, löschen, importieren (Benutzerverwaltung)
edit_chamber_usersKammer-spezifische User-Verwaltung (Kammer-Admins, Ausbilder, Auszubildende des Kammer-Bereichs)
edit_configLogin-Type, OAuth-Daten, LDAP-Verbindungen ändern
edit_settingsBasis-Einstellungen, Profilfelder, Lernort-Typen, Stack-Vorlagen, Berichtsheft-Export-Layout
edit_renamingsBegriffe der UI umbenennen (Renaming-Funktion)
edit_all_templatesAlle Stack-Vorlagen verwalten
edit_jobsAusbildungsbetriebe (Code: Job) anlegen, bearbeiten, löschen

Inhaltliche Permissions

PermissionWirkung
use_portfolioZugang zur Stack-Übersicht und allen Memo-, Tag-, Lernort-, Freigabe- und Export-Funktionen
edit_task_descriptionIm Memo zusätzlich die Felder „Aufgabentitel“ und „Aufgabenbeschreibung“ sichtbar/setzbar
edit_tasksAufgaben/Lehrelemente bearbeiten (verwandt zu edit_task_description)
feedback_upload_mediaBeim Geben von Feedback in einer Link-Freigabe darf eine Datei angehängt werden
view_dashboardStandard-Dashboard sehen (Standard-Vorraussetzung für alle Inhalte-Pfleger:innen)

Spezialrollen-Permissions

PermissionWirkung
view_trainerZugang zum Trainer-Dashboard und den Berichtsheft-Aktionen für Auszubildende
view_chamber_adminZugang zum Kammer-Dashboard und den Kammer-Admin-Verwaltungs-Routen

Vererbungs-Logik

Die Standard-Permissions werden in der folgenden Reihenfolge aufgebaut (siehe PermissionsTableSeeder):

Superadmin    ⊇  Admin  ⊇  Lehrperson  ⊇  Auszubildender
    │
    └─ +eigene Superadmin-Rechte

Kammer-Admin  und  Ausbilder
    sind eigenständige Sets ohne Vererbung.

Konkret:

  • Superadmin erhält alle Admin-, Lehrperson- und Auszubildender-Permissions plus eigene Superadmin-Rechte.
  • Admin erhält Lehrperson- und Auszubildender-Permissions plus eigene Admin-Rechte.
  • Lehrperson erhält Auszubildender-Permission (use_portfolio) plus eigene Teacher-Rechte.
  • Auszubildender hat nur use_portfolio.
  • Kammer-Admin hat ein eigenes Set (view_chamber_admin, use_portfolio, edit_chamber_users, edit_user, edit_jobs).
  • Ausbilder hat ein eigenes Set (view_trainer, use_portfolio, edit_jobs, edit_task_description).

Policy-Layer (modellbezogene Zugriffsregeln)

Über die rein berechtigungsbasierte Prüfung hinaus arbeiten in der Future-Box Policies für einzelne Modelle. Sie prüfen, ob eine Person eine bestimmte Aktion auf einem bestimmten Datensatz ausführen darf.

PolicyPrüfung
EntryPolicy (Memo)View/Update/Delete: nur eigener Inhalt; Update/Delete zusätzlich blockiert, wenn Memo aus einer Code-Freigabe stammt mit can_edit_trainee = false und Person die Rolle user hat
PortfolioPolicy (Stack)View/Update/Delete: nur eigene Stacks
PublishPolicy (Link-Freigabe)Update/Delete: nur eigene Freigaben
SharePolicy (Code-Freigabe / Vorlage)Update/Delete: nur eigene
TagPolicyView/Update/Delete: nur eigene Tags
LocationPolicyView/Update/Delete: nur eigene Lernorte

Ein subtiler Schutz für Code-Freigaben

Wenn eine Lehrkraft einen Stack als Vorlage an Lernende verteilt und beim Erstellen das Flag „darf von Auszubildenden bearbeitet werden“ (can_edit_trainee) deaktiviert lässt, dann können die Lernenden die importierten Memos zwar sehen, aber nicht ändern oder löschen. So bleibt die Original-Aufgabenstellung intakt — siehe Stacks.


Spezialfälle

Erste Person wird Superadmin

Beim allerersten Aufsetzen einer Instanz erhält die zuerst registrierte (oder durch LDAP angemeldete) Person automatisch die Rolle Superadmin (User::count() === 0-Check beim Anlegen). Folgende Personen erhalten die Standard-Rolle (user).

⚠️ Empfehlung: Stellen Sie sicher, dass die erste Person in einer neuen Instanz tatsächlich die spätere Administration ist – nicht ein Test-Account.

Default-User

Pro Instanz kann genau ein Account das Flag default = 1 tragen. Dieser Account hat folgende Spezial-Eigenschaften:

  • Login lokal mit E-Mail + Passwort möglich, auch bei LDAP/Keycloak als globalem Login-Type.
  • In der Benutzerverwaltung versteckt (vor versehentlicher Löschung geschützt).
  • Kann das eigene Passwort nicht über das Profil ändern (nur über DB / Admin direkt) — schützt den Notfall-Bypass.

Superadmin-Schutz

  • Nicht in der Benutzerliste sichtbar (UserController-Filter, Benutzerverwaltung)
  • Nicht über das Profil löschbar (Profile-Controller-Schutz)
  • Nur durch tieferen Eingriff (Datenbank, Konsole) entfernbar

Dashboard-Routing

Personen mit view_chamber_admin oder view_trainer werden nach dem Login nicht zur Stack-Übersicht geleitet, sondern in ihr Spezial-Dashboard. Auch wenn sie zusätzlich use_portfolio haben, sehen sie das Standard-Hauptmenü nicht. Siehe Dashboard und Hauptmenü.


Wer darf Rollen vergeben?

AktionErforderlich
Rolle in der allgemeinen Benutzerverwaltung vergeben/ändernBerechtigung edit_user (Standard: Superadmin, Admin, Kammer-Admin)
Kammer-spezifische Rollen vergeben (Kammer-Admin, Ausbilder, Auszubildender)Berechtigung edit_chamber_users (Standard: Kammer-Admin)
Superadmin-Rolle vergebentechnisch nicht über die UI vorgesehen — nur über Konsole/DB

Welche Rolle für welche Personen?

Anhand typischer Einsatzkontexte:

PersonEmpfohlene RolleBegründung
Schüler:in / Auszubildende:r🎓 AuszubildenderStandardrolle; alle Inhalts-Funktionen verfügbar
Lehrkraft / Tutor:in👩‍🏫 LehrpersonZusätzlich Aufgaben formulieren, Feedback mit Datei-Anhang
Ausbilder:in (dual)🛠️ AusbilderTrainer-Dashboard, Berichtsheft-Freigabe
Kammer-Verantwortliche:r🏛️ Kammer-AdminKammer-Dashboard, Kammer-Userverwaltung
Schul-/Träger-Verantwortliche:r⚙️ AdministratorKonfiguration, Nutzerverwaltung der Instanz
Technische:r Verantwortliche:r🛡️ Superadminnur intern, sparsam vergeben

Hinweise & Tipps

  • Sparsam mit Superadmin: Vergeben Sie diese Rolle nur an wenige technische Verantwortliche. Sie öffnet alle Türen.
  • Pro Person eine Rolle: Eine Person mit Doppelrolle „Lehrperson + Ausbilder“ lässt sich nur über zwei separate Accounts abbilden, da das System pro Account genau eine Rolle erlaubt.
  • Rolle wechseln wirkt sofort: Nach Speichern einer geänderten Rolle sieht die Person beim nächsten Seitenaufruf das angepasste Menü und die freigegebenen Funktionen.
  • Renaming statt Code-Änderung: Wenn Ihre Einrichtung andere Rollen-Bezeichnungen wünscht (z. B. „Tutor:in“, „Ausbildungsleiter:in“), ändern Sie nur die Renaming-Schlüssel — die Permissions bleiben identisch.
  • Default-Account dokumentieren: Notieren Sie extern, welche E-Mail / welcher Identifier den Default-Account darstellt. Da er in der UI versteckt ist, wäre er sonst leicht zu vergessen.
  • Permission-Set überprüfen: Wer Sonderfälle implementiert (z. B. Lehrkraft soll auch Stack-Vorlagen anlegen können), kann Permissions in der Datenbank über Spatie-Permissions Funktionen direkt der Rolle hinzufügen — die UI bietet aktuell keine Permission-Verwaltung.

Verwandte Bereiche

×

    Demo-Account anfragen


    Sie erhalten unmittelbar nach dem Absenden eine Eingangsbestätigung per E-Mail.
    Unser Team wird Ihre Anfrage prüfen und sich zeitnah mit weiteren Informationen zur Einrichtung Ihres Demo-Accounts bei Ihnen melden.



    ×

      Installation auf Shared-Cluster anfragen


      Nach dem Absenden des Formulars erhalten Sie eine automatische Eingangsbestätigung per E-Mail.
      Ihre Anfrage wird parallel an unser Team übermittelt und intern geprüft.
      Wir setzen uns zeitnah mit Ihnen in Verbindung, um die nächsten Schritte zur Installation und technischen Abstimmung zu besprechen.



      ×

        Eigenen Future-Box Cluster anfragen


        Nach dem Absenden erhalten Sie eine automatische Bestätigung Ihrer Anfrage per E-Mail.
        Ihre Angaben werden an unser Projektteam weitergeleitet und sorgfältig geprüft.
        Wir melden uns zeitnah bei Ihnen, um das Vorhaben gemeinsam zu besprechen und mögliche Umsetzungsszenarien zu klären.