Ü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 inorganization_members. Steuert den organisationsweiten Zugriff.
| Rolle | Berechtigungen |
|---|---|
| Owner | Vollständige Kontrolle — Abrechnung, Einstellungen, Mitgliederverwaltung, alle Features |
| Admin | Mitglieder, Teams und die meisten Einstellungen verwalten. Kann die Organisation nicht löschen oder die Abrechnung verwalten |
| Member | Zugriff auf Features basierend auf Team- und Board-Rollen. Kann Organisationseinstellungen nicht verwalten |
| External Collaborator | Eingeschränkter Zugriff nur auf speziell zugewiesene Projekte |
Ebene 2: Team
Verwaltet inteam_members. Steuert teambezogene Ressourcen.
| Rolle | Berechtigungen |
|---|---|
| Lead | Teameinstellungen, Mitglieder, Feature-Konfiguration und Projektzuordnungen verwalten |
| Member | Zugriff auf Teamprojekte, Aufgaben, Releases und Wissensdatenbank |
Ebene 3: Board (Projekt)
Verwaltet inuser_project_access.board_role. Steuert den Zugriff pro Projekt.
| Rolle | Berechtigungen |
|---|---|
| Owner | Vollständige Projektkontrolle — Einstellungen, Mitglieder, Löschen |
| Editor | Aufgaben, Releases und Wissensdatenbank-Seiten erstellen und bearbeiten |
| Viewer | Nur-Lese-Zugriff auf Projektressourcen |
Benutzertypen
Abgeleitet von der Organisationsrolle:| Benutzertyp | Abgeleitet Von | Sieht |
|---|---|---|
| Internal | Owner-, Admin- oder Member-Rolle in der Organisation | Vollständige Plattform basierend auf Feature-Zugriff |
| Customer | Customer-Benutzertyp | Vereinfachtes Dashboard, zugewiesene Projekte |
| External Collaborator | External-Collaborator-Rolle in der Organisation | Nur 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 aufauth.uid().