Zum Hauptinhalt springen

Überblick

Apollo verwendet ein dreistufiges Berechtigungsmodell, das eine granulare Zugriffskontrolle von der Organisationsebene bis hinunter zu einzelnen Projekt-Boards bietet.

Berechtigungsebenen

Ebene 1: Organisation

Verwaltet in organization_members. Steuert den organisationsweiten Zugriff.
RolleBerechtigungen
OwnerVollständige Kontrolle — Abrechnung, Einstellungen, Mitgliederverwaltung, alle Features
AdminMitglieder, Teams und die meisten Einstellungen verwalten. Kann die Organisation nicht löschen oder die Abrechnung verwalten
MemberZugriff auf Features basierend auf Team- und Board-Rollen. Kann Organisationseinstellungen nicht verwalten
External CollaboratorEingeschränkter Zugriff nur auf speziell zugewiesene Projekte

Ebene 2: Team

Verwaltet in team_members. Steuert teambezogene Ressourcen.
RolleBerechtigungen
LeadTeameinstellungen, Mitglieder, Feature-Konfiguration und Projektzuordnungen verwalten
MemberZugriff auf Teamprojekte, Aufgaben, Releases und Wissensdatenbank

Ebene 3: Board (Projekt)

Verwaltet in user_project_access.board_role. Steuert den Zugriff pro Projekt.
RolleBerechtigungen
OwnerVollständige Projektkontrolle — Einstellungen, Mitglieder, Löschen
EditorAufgaben, Releases und Wissensdatenbank-Seiten erstellen und bearbeiten
ViewerNur-Lese-Zugriff auf Projektressourcen

Benutzertypen

Abgeleitet von der Organisationsrolle:
BenutzertypAbgeleitet VonSieht
InternalOwner-, Admin- oder Member-Rolle in der OrganisationVollständige Plattform basierend auf Feature-Zugriff
CustomerCustomer-BenutzertypVereinfachtes Dashboard, zugewiesene Projekte
External CollaboratorExternal-Collaborator-Rolle in der OrganisationNur speziell zugewiesene Projekte

Routenschutz

Apollo setzt Berechtigungen auf mehreren Ebenen durch:
  • <ProtectedRoute> — erfordert Authentifizierung (jeder angemeldete Benutzer)
  • <FeatureRoute feature="..."> — erfordert, dass das genannte Feature für den Benutzer aktiviert ist
  • <InternalRoute> — erfordert internen Benutzertyp
  • <AdminRoute> — erfordert Admin- oder Owner-Rolle in der Organisation

Row-Level Security (RLS)

Alle Datenbanktabellen haben Row-Level Security-Richtlinien, die auf PostgreSQL-Ebene durchgesetzt werden. Selbst wenn das Frontend umgangen würde, erzwingt die Datenbank Zugriffsregeln basierend auf auth.uid().