Corcava logo Das einzige Business-Tool, das Sie brauchen Corcava
Menü

Berechtigungen und Zugriffskontrolle

Überblick

Corcava setzt ein umfassendes rollenbasiertes Zugriffssystem um, das Teammitgliedern angemessenen Zugriff auf Projekte, Bretter und Aufgaben gibt und dabei Sicherheit und Datentrennung wahrt. Laut Code-Analyse nutzt das System eine Kombination aus Benutzerrollen, Berechtigungsprüfung und teambasierter Isolation für den Zugriff auf Projektmanagement-Funktionen.

Das Verständnis des Berechtigungssystems hilft Ihnen, Teamzugriff sinnvoll zu konfigurieren und angemessene Sicherheit für Projekte und Kundendaten zu wahren.


Rollenbasierter Zugriff – Benutzerrollen und Möglichkeiten

Benutzerrollen-System

Verfügbare Rollen: Laut Code-Analyse gibt es 7 Benutzerrollen:

1. SUPERADMIN

  • Vollzugriff auf das System – Volle Kontrolle über alle Organisationsdaten und -einstellungen
  • isShowAllAndOwnProjectCRUD() – Kann alle Projekte einsehen und verwalten
  • isShowAllAndOwnTaskCRUD() – Kann alle Aufgaben einsehen und verwalten
  • Teamverwaltung – Kann alle Teammitglieder und Rollen verwalten
  • Finanzkontrolle – Zugriff auf alle Rechnungs- und Finanzfunktionen

2. ORGANIZATION_MANAGER

  • Teamführung – Teams, Projekte und Organisations-Einstellungen verwalten
  • isShowAllAndOwnProjectCRUD() – Kann alle Team-Projekte einsehen und verwalten
  • isShowAllAndOwnTaskCRUD() – Kann alle Team-Aufgaben einsehen und verwalten
  • Kundenverwaltung – Vollzugriff auf Kundenbeziehungen und -daten
  • Finanzzugriff – Kann Rechnungen und Ausgaben verwalten

3. SALES_MANAGER

  • Vertrieb – Vertriebsaktivitäten überwachen und Vertriebsteam führen
  • isShowAllAndOwnTaskCRUD() – Kann alle Aufgaben einsehen und verwalten
  • isShowAllAndOwnContactCRUD() – Kann alle Kontakte und Leads verwalten
  • isShowAllAndOwnDealCRUD() – Kann alle Deals und Opportunities verwalten
  • Projekterstellung – Kann Projekte für Kunden anlegen
  • Begrenzter Finanzzugriff – Kann Rechnungen erstellen, Finanzzugriff eingeschränkt

4. SALES_REPRESENTATIVE

  • Fokussierter Vertriebszugriff – Nur Zugriff auf zugewiesene Leads und Deals
  • isShowAllAndOwnDealCRUD() – Kann Deals und Opportunities verwalten
  • Projekterstellung – Kann Projekte für seine Kunden anlegen
  • Begrenzter Umfang – Kein Zugriff auf Daten anderer Teammitglieder
  • Kundeninteraktion – Kann zugewiesene Kundenbeziehungen verwalten

5. PROJECT_MANAGER (Veraltet)

  • Veraltet – Diese globale Rolle wurde entfernt
  • Stattdessenis_manager=true in der Pivot-Tabelle project_users für projektbezogenes Management setzen
  • Projektmanager – Benutzer können über die Projekt-Bearbeitungsseite als Manager bestimmter Projekte festgelegt werden

6. USER

  • Aufgabenausführung – Kann an zugewiesenen Aufgaben und Projekten arbeiten
  • Projektzuweisung nötig – Muss Projekten zugewiesen sein für Zugriff
  • Kollaborationszugriff – Kann kommentieren, Benutzer zuweisen und Zeit erfassen
  • Begrenzte Administration – Kann keine Projekte anlegen oder Team-Einstellungen verwalten

7. PROJECT_VIEWER

  • Kundenportal-Rolle – Für Kundenportal-Zugriff vorgesehen
  • Zwei Untertypen – Varianten „viewer“ und „manager“
  • Projektzuweisung nötig – Muss bestimmten Projekten zugewiesen sein
  • Lese-/Schreibzugriff – Kann zugewiesene Projekte einsehen und nutzen
  • Kostenlose Rolle – Das Hinzufügen von Benutzern in dieser Rolle ist kostenlos

Details zur Rollen-Implementierung

Rollenprüf-Methoden: Laut User-Model-Analyse:

  • hasRole(RoleName $role) – Prüft, ob der Benutzer eine bestimmte Rolle hat
  • Rollenspezifische Methoden – isSuperAdmin(), isOrganizationManager() usw.
  • Berechtigungsprüfung – hasPermission(string $permission)
  • CRUD-Berechtigungsgruppen – isShowAllAndOwnProjectCRUD() usw.

Untertypen von Project Viewer:

  • isViewer() – PROJECT_VIEWER mit project_viewer-Wert „viewer“
  • isViewerManager() – PROJECT_VIEWER mit project_viewer-Wert „manager“
  • isProjectViewer() – Jede PROJECT_VIEWER-Rolle unabhängig vom Untertyp

Berechtigungen auf Projektebene – Wer auf welche Projekte zugreifen kann

Projekt-Zugriffskontrolle

Umsetzung der Projektberechtigungen: Laut ProjectPolicy-Analyse:

Projekte anzeigen (viewAny):

  • Berechtigungsprüfung – Benutzer mit Berechtigung „project.viewAny“
  • Betrachterzugriff – Projektbetrachter können zugewiesene Projekte sehen
  • Team-Isolation – Benutzer sehen nur Projekte ihres Teams

Projekte erstellen (create):

  • Admin-Rollen – isShowAllAndOwnProjectCRUD() (Superadmin, OrgManager)
  • Vertriebsrollen – Vertriebsmanager und Vertriebsmitarbeiter können Projekte anlegen
  • Einschränkung für User – Normale Benutzer können keine Projekte anlegen

Projekte bearbeiten (edit/update):

  • Berechtigungsbasiert – Benutzer mit Berechtigung „project.update“
  • Betrachter-Ausnahme – Projektbetrachter können bearbeiten, wenn dem Projekt zugewiesen
  • Inhaberbasiert – Vertriebsbenutzer können ihre eigenen Projekte bearbeiten
  • Team-Validierung – Alle Bearbeitungen erfordern dieselbe Teamzugehörigkeit

Projekt löschen/archivieren:

  • Admin-Kontrolle – Vor allem Admin- und Manager-Rollen
  • Inhaberrechte – Vertriebsbenutzer können ihre eigenen Projekte löschen
  • Team-Isolation – Löschen nur innerhalb desselben Teams möglich

Projekt-Zuweisungssystem

Projekt-Benutzer-Beziehungen:

  • Benutzerzuweisungssystem – Explizite Zuweisung von Benutzern zu Projekten
  • belongsToProject() – Methode zur Prüfung, ob Benutzer zu einem Projekt gehört
  • Team-Validierung – Projektzuweisung erfordert dieselbe Teamzugehörigkeit
  • Berechtigungs-Kaskade – Projektzuweisung beeinflusst Brett- und Aufgaben-Zugriff

Vorteile der Zuweisung:Granulare Kontrolle – Bestimmte Benutzer bestimmten Projekten zuweisen
Sicherheits-Isolation – Benutzer greifen nur auf zugewiesene Projekte zu
Flexible Verwaltung – Benutzer einfach zu Projekten hinzufügen/entfernen
Berechtigungsvererbung – Projektzuweisung ermöglicht Brett- und Aufgaben-Zugriff


Brett-Sicherheit – Brettspezifische Zugriffskontrollen

Brett-Berechtigungssystem

Brett-Zugriffskontrolle: Laut ProjectBoardPolicy-Analyse:

Bretter anzeigen:

  • Abhängigkeit von Aufgabenberechtigung – Erfordert Berechtigung „task.viewAny“
  • Projektzuweisung – Muss dem Projekt zugewiesen sein, das das Brett enthält
  • Teamzugehörigkeit – Muss Mitglied desselben Teams wie das Brett sein
  • Rollenbasierter Zugriff – Unterschiedliche Zugriffsebenen je nach Benutzerrolle

Bretter erstellen:

  • Admin-Rollen – Benutzer mit isShowAllAndOwnTaskCRUD() können Bretter erstellen
  • Normale Benutzer – Können Bretter in zugewiesenen Projekten erstellen
  • Viewer Manager – Können Bretter in zugewiesenen Projekten erstellen
  • Einschränkung für Betrachter – Normale Betrachter können keine Bretter erstellen

Brettverwaltung:

  • Update-Berechtigung – Erfordert Berechtigung „task.update“
  • Inhaberbasiert – Benutzer können Bretter verwalten, die sie besitzen
  • Admin-Override – Admins können alle Team-Bretter verwalten
  • Team-Validierung – Alle Aktionen erfordern dieselbe Teamzugehörigkeit

Brett-Sicherheitsfunktionen

Zugriffsvalidierung:

  • Mehrstufige Prüfung – Berechtigung, Rolle, Team und Projektzuweisung
  • Projekt-Benutzer-Join – Komplexe Abfrage mit Verknüpfung von projects und project_users
  • Team-Isolation – Brettzugriff strikt auf Teammitglieder beschränkt
  • Berechtigungs-Kaskade – Brettzugriff ermöglicht Spalten- und Aufgaben-Zugriff

Sicherheitsvorteile:Projektbasierte Sicherheit – Brettzugriff an Projektzuweisung geknüpft
Team-Isolation – Klare Trennung zwischen Teams
Rollenbeachtung – Unterschiedliche Möglichkeiten je nach Rolle
Inhabererkennung – Brettinhaber haben erweiterte Berechtigungen


Berechtigungen auf Aufgabennebene – Feingranularer Aufgaben-Zugriff

Aufgaben-Berechtigungssystem

Aufgaben-Zugriffskontrolle: Laut TaskPolicy-Analyse:

Aufgaben anzeigen:

  • Team-Validierung – Muss Mitglied desselben Teams wie die Aufgabe sein
  • Spalten-Team-Prüfung – Prüft, ob Benutzerteam zum Team der Aufgaben-Spalte passt
  • Alle Rollen erlaubt – Alle Rollentypen können Aufgaben anzeigen (mit Team-Validierung)
  • Universeller Zugriff – viewAny() gibt true zurück (mit weiteren Validierungen)

Aufgaben erstellen:

  • Breiter Zugriff – Die meisten Rollen können Aufgaben erstellen (Admin, User, Viewer, Viewer Manager)
  • Projektzuweisung – Muss Zugriff auf das Zielprojekt haben
  • Berechtigungsprüfung – Einige Rollen benötigen die Berechtigung „task.update“
  • Team-Validierung – Aufgabenerstellung auf Teammitglieder beschränkt

Aufgabenverwaltung:

  • Aufgaben aktualisieren – Ähnliche Berechtigungen wie bei der Erstellung
  • Aufgaben löschen – Erfordert passende Rolle und Teamzugehörigkeit
  • Benutzer zuweisen – Kann mit entsprechenden Berechtigungen Benutzer zuweisen
  • Kommentare hinzufügen – Breiter Zugriff für Team-Kollaboration

Spezielle Aufgabenberechtigungen:

  • moveToBoard – Kann Aufgaben zwischen Brettern innerhalb desselben Teams verschieben
  • Zeiterfassung – Projektbetrachter vom Typ „viewer“ können keine Zeit erfassen
  • Dateizugriff – Zugriff auf Aufgabenanhänge folgt den Aufgabenberechtigungen

Umsetzung der Aufgaben-Sicherheit

Berechtigungsvalidierungs-Muster: Alle Aufgaben-Operationen folgen einem ähnlichen Validierungsmuster:

  1. Team-Validierung – Prüfen, ob Benutzerteam zum Team der Aufgaben-Spalte passt
  2. Rollenprüfung – Prüfen, ob die Rolle die nötigen Berechtigungen hat
  3. Projektzuweisung – Bei Betrachtern prüfen, ob der Benutzer dem Projekt zugewiesen ist
  4. Berechtigungs-String – Wo nötig spezifische Berechtigungs-Strings prüfen

Vorteile der Aufgaben-Sicherheit:Team-Isolation – Aufgaben zwischen Teams getrennt
Projektbasierter Zugriff – Aufgaben-Zugriff an Projektzuweisung geknüpft
Rollenangemessene Berechtigungen – Unterschiedliche Möglichkeiten je nach Rolle
Feingranulare Kontrolle – Spezifische Berechtigungen für verschiedene Aufgaben-Operationen


Kundenportal-Zugriff – Was Kunden sehen und tun können

Kundenportal-Implementierung

Kundenbenutzer-System: Laut Code-Analyse nutzt der Kundenportal-Zugriff die Rolle PROJECT_VIEWER:

Kundenportal-Funktionen:

  • DashboardClient-Ansicht – Eigenes Dashboard für Kundenbenutzer
  • isViewer()-Erkennung – System erkennt Kundenbenutzer und leitet zur Kunden-Oberfläche
  • Chat-Integration – Automatische Chat-Erstellung für Kundenkommunikation
  • Widget-Integration – Kundenportal-Widget für Kommunikation

Kunden-Zugriffsberechtigungen:

  • Projektzuweisung nötig – Kunden müssen bestimmten Projekten zugewiesen sein
  • Team-Validierung – Kundenzugriff auf ihren Team-Kontext beschränkt
  • Begrenzter Umfang – Kunden sehen nur zugewiesene Projekte und zugehörige Daten
  • Professionelle Oberfläche – Eigene kundenorientierte Oberfläche

Kundenportal-Sicherheit

Zugriffskontrolle für Kunden:

  • Rollenbasierte Weiterleitung – isViewer()-Benutzer werden automatisch zum Kundenportal weitergeleitet
  • Projekt-Isolation – Kunden sehen nur Projekte, denen sie zugewiesen sind
  • Datenfilterung – Alle Abfragen nach Kundenzuweisung und Berechtigungen gefiltert
  • Team-Grenze – Kundenzugriff strikt auf ihr Team beschränkt

Vorteile des Kundenportals:Sicherer Zugriff – Kunden sehen nur relevante Projektinformationen
Professionelle Oberfläche – Klare, kundenangemessene Oberfläche
Projekttransparenz – Kunden können Projektfortschritt und Status sehen
Kontrollierte Kommunikation – Gesteuerte Kommunikationskanäle mit dem Team


Architektur des Berechtigungssystems

Technische Umsetzung

Berechtigungsspeicherung:

  • Rollensystem – Speichert verfügbare Benutzerrollen und Möglichkeiten
  • Benutzer-Rollen-Zuweisung – Verknüpft Benutzer mit Rollen im Team-Kontext
  • Individuelle Berechtigungen – Spezifische Berechtigungen pro Rolle
  • Team-Isolation – Alle Berechtigungen auf Team-Ebene begrenzt

Berechtigungsprüfung:

  • hasPermission() – String-basierte Berechtigungsprüfung
  • Rollen-Methoden – Spezifische Rollenprüf-Methoden
  • Policy-Klassen – Eigene Policy-Klassen pro Model
  • Gate-Registrierung – Automatische Gate-Registrierung für alle Berechtigungen

Sicherheitsebenen:

  1. Authentifizierung – Benutzer muss angemeldet sein
  2. Teamzugehörigkeit – Benutzer muss dem relevanten Team angehören
  3. Rollen-Validierung – Benutzer muss die passende Rolle haben
  4. Berechtigungsprüfung – Benutzer muss die konkrete Berechtigung haben
  5. Projektzuweisung – Benutzer muss dem Projekt zugewiesen sein (wo zutreffend)

Vorteile des Berechtigungssystems

Mehrstufige Sicherheit – Mehrere Validierungsebenen verhindern unbefugten Zugriff
Team-Isolation – Klare Trennung zwischen Teams
Rollenangemessener Zugriff – Berechtigungen entsprechen den Verantwortlichkeiten
Projektspezifische Kontrolle – Feingranulare Kontrolle des Projektzugriffs
Kundensicherheit – Sichere, kontrollierte Nutzung für Kundenbenutzer


Einstieg in die Berechtigungsverwaltung

Kurzanleitung

Schritt 1: Ihre Rolle verstehen

  1. Ihre Benutzerrolle und Berechtigungen prüfen
  2. Verstehen, welche Aktionen Sie ausführen können
  3. Wissen, auf welche Projekte und Daten Sie zugreifen können
  4. Einschränkungen Ihres Zugriffs kennen

Schritt 2: Team-Berechtigungen verwalten

  1. Rollen und Zugriffsebenen der Teammitglieder prüfen
  2. Benutzer den passenden Projekten zuweisen
  3. Sicherstellen, dass Teammitglieder die nötigen Berechtigungen haben
  4. Rollen bei Bedarf an Projektanforderungen anpassen

Schritt 3: Kundenzugriff konfigurieren

  1. Kundenbenutzer mit Rolle PROJECT_VIEWER anlegen
  2. Kunden bestimmten Projekten zuweisen
  3. Kundenportal-Zugriff angemessen konfigurieren
  4. Kundenzugriff testen, um korrekte Isolation zu prüfen

Best Practices für Berechtigungen

Prinzip der minimalen Rechte – Nur den nötigen Zugriff gewähren
Regelmäßige Prüfung – Rollen und Berechtigungen periodisch prüfen
Klare Rollendefinition – Sicherstellen, dass das Team die Zugriffsebenen kennt
Projektzuweisung – Benutzer den relevanten Projekten korrekt zuweisen
Kundentrennung – Kundenzugriff sicher und angemessen halten
Team-Isolation – Klare Grenzen zwischen Teams wahren


Berechtigungsprobleme beheben

Häufige Probleme

Kein Zugriff auf Projekte:

  • Rolle prüfen – Ob Sie die passende Rolle für Projektzugriff haben
  • Projektzuweisung – Ob Sie dem konkreten Projekt zugewiesen sind
  • Teamzugehörigkeit – Ob Sie dem richtigen Team angehören
  • Berechtigungs-Strings – Ob Sie die erforderlichen Berechtigungs-Strings haben

Aufgaben können nicht erstellt/bearbeitet werden:

  • Aufgabenberechtigung – Ob Sie die Berechtigung „task.update“ haben
  • Projektzuweisung – Ob Sie dem Projekt zugewiesen sind
  • Team-Validierung – Ob Ihr Team zum Team der Aufgabe passt
  • Rollen-Einschränkungen – Einige Rollen haben eingeschränkten Aufgaben-Zugriff

Kundenportal-Probleme:

  • Rollenkonfiguration – Ob der Kunde die Rolle PROJECT_VIEWER hat
  • Projektzuweisung – Ob der Kunde bestimmten Projekten zugewiesen ist
  • Portal-Einrichtung – Konfiguration des Kundenportal-Widgets prüfen
  • Team-Kontext – Ob der Kunde im richtigen Team-Kontext ist

Berechtigungs-Debugging

Ihre Berechtigungen prüfen:

  1. Rollenbestätigung – Ihre zugewiesene Rolle bestätigen
  2. Berechtigungsliste – Ihre konkreten Berechtigungen prüfen
  3. Projektzuweisung – Prüfen, welchen Projekten Sie zugewiesen sind
  4. Team-Kontext – Prüfen, ob Sie im richtigen Team sind
  5. Policy-Validierung – Verstehen, welche Policy-Regeln für Ihre Aktionen gelten

Nächste Schritte

Nachdem Sie Berechtigungen und Zugriffskontrolle verstanden haben, können Sie sich mit Folgendem vertiefen:

Merken Sie sich: Das Berechtigungssystem in Corcava soll Sicherheit mit Kollaboration verbinden. Ihre Rolle und Berechtigungen zu kennen hilft Ihnen, effektiv im System zu arbeiten und dabei angemessene Zugriffskontrollen für Team und Kunden zu wahren.

Verwandte Artikel