Rollen und Berechtigungen - krt-profit/basetool GitHub Wiki

Rollen & Berechtigungen

Das Basetool trennt Zugriffe sehr genau. Dieses Dokument erklärt das Rollen- und Rechtekonzept vollständig: die globalen Rollen, die kontextuellen Zusatz-Flags, die Bank-Rollen, die kaskadierende Bereichs-/Organisationsleitung und die Sonderfälle (SK-Lead, Discord-Wartezustand). Die in der Codebase verifizierte Vollmatrix mit allen Endpunkten liegt im Repo unter ROLES_AND_PERMISSIONS.md. Bei Abweichungen zählt immer der Code.

Zwei Durchsetzungsebenen

Jeder Zugriff wird auf zwei unabhängigen Ebenen geprüft und ist nur erlaubt, wenn er beide passiert:

  1. Seiten-Ebene — legt pro Seite fest, ob sie ohne Anmeldung, angemeldet oder nur mit einer Rolle erreichbar ist. Ohne Anmeldung erreichbar sind nur die Einstiegsseite, die Rechtsseiten und ein paar technische Adressen.
  2. Aktions-Ebene — verfeinert pro Aktion, oft zusätzlich bezogen auf deine Org-Einheit (du darfst z. B. nur Daten deiner Staffel bearbeiten).

Die beiden Ebenen können sich nur verschärfen, nie aufweichen. Eine UI-Schaltfläche, die du nicht sehen darfst, ist nur die halbe Miete — das Backend erzwingt die Berechtigung in jedem Fall.

Die Rollen

Rolle (deutsch) Technisch (Keycloak) Wer Typische Aufgaben
Admin ADMIN Administration Ihre Funktionen sind nicht Teil dieses Wikis; bei Fragen wende dich an die Administration.
Offizier OFFICER Führungsebene der Staffel Staffelinterne Verwaltung: Einsätze leiten, Operationen/Auszahlungen; Beförderungssystem der eigenen Staffel; Seite Leitung. Erbt Logistiker + Einsatz-Manager.
Logistiker LOGISTICIAN (Flag) Logistik-Crew Lager, Raffinerie, Warenaufträge. Flag pro Mitgliedschaft, nicht global.
Einsatz-Manager MISSION_MANAGER (Flag) Einsatz-Planung Einsätze und Operationen verwalten, Auszahlungen freigeben. Flag pro Mitgliedschaft.
KRT-Mitglied KRT_MEMBER Aktives Mitglied Einsätze anlegen/beitreten, Hangar pflegen, Lager ansehen, Warenaufträge erstellen.
Bankmitarbeiter BANK_EMPLOYEE Bank-Crew Bankkonten mit Berechtigung sehen, ein-/auszahlen/überweisen je Konto-Flag. Siehe Kartellbank.
Bankleitung BANK_MANAGEMENT Bank-Führung Alle Konten, Kontoverwaltung, Berechtigungen, Storno.

Dazu kommen drei organisatorische Sonderfälle, die keine eigene Keycloak-Rolle sind, sondern an Mitgliedschaften hängen: der SK-Lead, die Bereichsleitung und die Organisationsleitung (OL) — siehe unten.

Jedes Konto ist mindestens Mitglied. Eine Gast-Rolle gibt es nicht (mehr, seit dem 06.09.2026). Ein angemeldeter Account, dem keine Rolle zugeordnet werden kann, wird abgewiesen und sieht einen eigenen Hinweis — „Keine Rolle vergeben" — bis die Administration eine Rolle vergibt.

Ohne Anmeldung erreichst du nur die Einstiegsseite und die Rechtsseiten (siehe Erste Schritte).

Eine Redaktionsstufe beim Einsatz-Detail

Ein Mitglied unterhalb Logistiker bekommt das Detail gefiltert: Besitzer und Co-Manager verschwinden (außer du darfst den Einsatz selbst verwalten), und von Teilnehmern und Schiffsbesitzern bleibt nur das Callsign (Benutzername, Anzeigename, Rang) — E-Mail, Beschreibung, Rollen und Mitgliedschaften werden ausgeblendet. Die Teilnehmerliste selbst, die Beschreibung, die Auszahlungsart und die Kommentare bleiben sichtbar — ein Mitglied ist Teil der Organisation. Details: Einsätze.

Der Finanz-/Auszahlungsbereich eines Einsatzes ist eine eigene Fläche und braucht zusätzlich das Recht, den Einsatz zu sehen. Namen, E-Mails und Zugangsdaten landen nie in einer redigierten Antwort.

Rollenhierarchie

OFFICER          > LOGISTICIAN
OFFICER          > MISSION_MANAGER
BANK_MANAGEMENT  > BANK_EMPLOYEE

Heißt: Offiziere erben automatisch alle Logistiker- und Einsatz-Manager-Rechte; die Bankleitung erfüllt jeden Bankmitarbeiter-Check. Diese Rollen musst du nicht doppelt zuweisen.

Zwei kontextuelle Flags: Logistiker & Einsatz-Manager

Logistiker und Einsatz-Manager sind keine Keycloak-Rollen, sondern Flags pro Mitgliedschaft (auf der Zeile, die dich mit einer Staffel oder einem SK verknüpft). Daraus folgt:

  • Trägt irgendeine deiner Mitgliedschaften ein Flag, passierst du grundsätzlich alle zugehörigen Gates.
  • Bei schreibenden Aktionen wird zusätzlich geprüft, ob das Flag für genau die Org-Einheit gilt, deren Daten du änderst. So bleibt ein Logistiker auf seine Org-Einheit(en) beschränkt.
  • Ein Mitglied kann bis zu zwei Staffeln angehören (plus beliebig vielen SKs), und jede dieser Mitgliedschaften trägt ihre eigenen Logistiker-/Einsatz-Manager-Flags. Du kannst also in der einen Staffel Logistiker sein und in der anderen nicht — die Flags gelten je Staffel getrennt.
  • Die Flags vergibt die Administration je Staffel; in einem SK setzt sie auch dessen Lead (siehe unten und Organisation).

SK-Lead (Sonderfall)

Ein Mitglied mit Lead-Flag auf einem Spezialkommando ist in diesem SK automatisch sowohl Logistiker als auch Einsatz-Manager — analog dazu, dass ein Offizier beide Rollen in seiner Staffel innehat. Der Lead hat außerdem das Recht, die Mitglieder seines SK zu verwalten (hinzufügen/entfernen, die Flags Logistiker/Einsatz-Manager setzen) — auf der Mitgliederseite seines SK, die er über Leitung → „Mitglieder verwalten“ erreicht. Den SK-Leiter-Rang selbst vergibt die Bereichsleitung des zugehörigen Bereichs auf der Seite Leitung — kein Selbst-Ernennen —, und er wirkt nicht auf andere SKs. Details: Organisation.

Bereichsleitung & Organisationsleitung (kaskadierend)

Über Staffeln und SKs liegen zwei weitere Ebenen: der Bereich (z. B. Profit, Sub-Radar) und die Organisationsleitung (OL) ganz oben. Ihre Zuständigkeit kaskadiert wie OFFICER > Logistiker/Einsatz-Manager:

  • Bereichsleitung (Bereichsleiter / -koordinator / -operator) hat offiziersgleiche Zuständigkeit über alle Staffeln + SKs ihres Bereichs und über die eigenen Bereichsdaten.
  • Organisationsleitung (OL) hat dieselbe Zuständigkeit über alles.
  • Der Grand Admiral ist ein OL-Mitglied mit einem Titel — er hat exakt die Rechte eines OL-Mitglieds, keine zusätzlichen (kein eigenes Rechtemodell). Er wird nur im Organigramm ganz oben angezeigt; es gibt höchstens einen.
  • Strikte Trennung: Eine Bereichsleitung sieht/bearbeitet nur den eigenen Bereich; nur die OL übergreift Bereiche.
  • Eigene Daten + im Auftrag anlegen: Bereich/OL besitzen eigene Aggregate (Lager, Einsätze, Operationen, Aufträge, Raffinerieaufträge) und können stellvertretend für eine untergeordnete Einheit anlegen.
  • Ein SK-Leiter sitzt zwar organisatorisch in der Bereichsleitung seines Bereichs, das erweitert seine Rechte aber nicht auf den Bereich (er bleibt SK-only).

Mitgliedschaftsregeln: bis zu zwei Staffeln + beliebig viele SKs; SK-Leiter, Bereichsleitung und OL gehören keiner Staffel an. Mehr: Organisation.

Wo die Offizier-Rolle operativ mitläuft

Die Keycloak-Rolle Offizier tragen alle Führungsränge: die Staffel-Führung (Staffelleiter, Kommandoleiter, stellvertretende Kommandoleiter und Ensigns) sowie — operativ zusätzlich vergeben — alle Mitglieder der Organisationsleitung, der Bereichsleitung und jedes Spezialkommandos und die Bankleitung. Hintergrund: einige Frontend-Flächen sind an die Rolle „Offizier" geknüpft und werden nur von ihr geöffnet. So ist die Seite „Leitung" ausschließlich für Offiziere erreichbar — ein reiner Logistiker oder Einsatz-Manager ohne Führungsrang kommt dort nicht mehr hinein (er hätte dort ohnehin keine Einheit zu verwalten). Wichtig: Die Offizier-Rolle öffnet damit nur die rollen-geschützten Flächen — die tatsächliche Daten-Reichweite im Backend bleibt mitgliedschaftsbasiert (Bereich/SK/Staffel, über den Owner-Scope). Ein SK-Mitglied mit Offizier-Rolle bekommt also dadurch nicht Zugriff auf fremde Staffeln; es bleibt bei dem, was seine Mitgliedschaft hergibt.

Bankmitarbeiter sind mindestens KRT-Mitglied, aber nicht automatisch Offizier — die Bank-Tore hängen ausschließlich an den Bank-Rollen, nie an „Offizier".

Eigentümer-Ausnahme für persönliche Zeilen

Eine Sonderregel gilt für persönliche Einträge: Das eigene Schiff, der eigene Lagereintrag und der eigene Raffinerieauftrag sind für ihren Eigentümer immer sicht- und bearbeitbar — unabhängig vom Org-Stempel der Zeile, auch nach einem Wechsel der Org-Einheit oder ganz ohne aktive Mitgliedschaft. Für Nicht-Eigentümer greift dagegen weiterhin der strikte Owner-Scope (man sieht/bearbeitet nur, was der eigenen Org-Einheit zugeordnet ist).

Zwei verschiedene Achsen: Führungsrang und numerischer Rang

Nicht verwechseln: Es gibt zwei voneinander unabhängige „Rang"-Achsen.

  • Der Führungsrang (z. B. Staffelleiter, Kommandoleiter, Bereichsleiter, SK-Leiter) regelt Zuständigkeit und Ernennungsrechte — siehe unten „Führungsränge & delegierte Ernennung".
  • Der numerische Rang 1–20 ist reine Anzeige-Ordnung (Sortierung in Listen, Anforderungen im Beförderungssystem) — siehe unten „Ränge (Ranks)".

Die beiden hängen nicht voneinander ab: Ein hoher numerischer Rang macht niemanden zur Führungskraft, und ein Führungsrang verändert die numerische Rang-Nummer nicht.

Führungsränge & delegierte Ernennung (Seite „Leitung")

Die Führung ist in abgestufte Ränge gegliedert, die niemand sich selbst verleihen kann — jeder Rang wird von einer höheren Ebene ernannt, entlang einer festen Leiter. Vergeben werden sie auf der Seite Organisation → Leitung, die jedem nur die Einheiten zeigt, die er selbst verwalten darf:

  • Die Organisationsleitung (OL) ernennt die Bereichsleiter.
  • Bereichsleiter ernennen die Staffelleiter, SK-Leiter sowie die Bereichskoordinatoren und -operatoren ihres eigenen Bereichs.
  • Staffelleiter verwalten innerhalb ihrer Staffel die Kommandoleiter, deren Stellvertreter und die Ensigns sowie bis zu vier Kommandogruppen (anlegen, umbenennen, löschen). Diese Führungsränge sind keine eigene Keycloak-Rolle: Bereichsleitung und OL haben offiziersgleiche Reichweite über ihre untergeordneten Einheiten (siehe oben). Jede Vergabe, Änderung und Entziehung steht im Audit-Log und spiegelt sich automatisch ins Organigramm. Mehr: Organisation.

Profit-Fähigkeit steuert den Auftrags-Workflow

Am Warenauftrags-Workflow nehmen für die allgemeine Warteschlange nur Mitglieder einer profit-fähigen Org-Einheit teil. Nur sie dürfen die Warteschlange sehen, fremde Aufträge bearbeiten und Material-Eintragungen setzen. Wer ausschließlich in nicht-profit-fähigen Einheiten ist, kann Aufträge anlegen und die von der eigenen Einheit gestellten Aufträge einsehen und — solange noch nichts geliefert wurde — eingeschränkt bearbeiten (reduzierte Ansicht ohne Bearbeiter/Materialübersicht; siehe Eigene Aufträge des Auftraggebers), aber die allgemeine Warteschlange nicht durchsuchen. Die Sidebar zeigt dann „Meine Aufträge" (bzw. „Neuen Auftrag anlegen").

Wartezustand für neue Accounts

Eine brandneue Discord-Anmeldung (und jeder andere neue Account) landet zunächst im Wartezustand „Freigabe ausstehend" — ganz ohne Rollen und ohne Org-Einheit. Wer auf die Freigabe wartet, sieht genau das und nicht „Keine Rolle vergeben". Erst die Freigabe durch die Administration macht den Account aktiv; danach werden Rollen/Einheiten manuell vergeben. Details: Discord-Anmeldung.

Matrix: Wer sieht/macht was?

Funktion Mitglied Logistiker Einsatz-Mgr Offizier
Organisationsweite (nicht-interne) Einsätze ansehen / beitreten x x x x
Finanz-Eintrag eines Einsatzes anlegen x⁷ x⁷ x⁸ x⁸
Eigenen Einsatz anlegen & verwalten x x x x
Fremde Einsätze der eigenen Org-Einheit verwalten x x
Operationen ansehen x x x x
Operation anlegen/bearbeiten, Auszahlung als „bezahlt" markieren x x
Auszahlung „bezahlt" wieder zurücknehmen x
Warenauftrag anlegen x x x x
Auftrags-Liste/-Detail ansehen (allgemeine Warteschlange)¹ x x x x
Eigene gestellte Aufträge ansehen — reduziert⁶ x x x x
Eigene gestellte Aufträge eingeschränkt bearbeiten (nur solange keine Übergabe)⁶ x x x x
Warenauftrag bearbeiten (Status, Material/Items, Übergabe)¹ x x
Material-Eintragung auf SK-Auftrag¹ x x
Bearbeitende Einheit umschreiben x² x²
Raffinerieauftrag ansehen x x x x
Eigene Raffinerieaufträge anlegen/abschließen (inkl. Screenshot-Import) x x x x
Raffinerieaufträge der Org-Einheit / für andere verwalten x x
Hangar / Lager ansehen x x x x
Lager bearbeiten / ein- & ausbuchen x³ x x³ x
Besitzer im Hangar-Tab „Org-Einheit" aufklappen x
Persönl. Inventar & Baupläne (eigene) x x x x
Blueprint-Verfügbarkeit der Org-Einheit ansehen x⁴ x
Beförderungssystem pflegen (eigene Staffel) x
SK-Mitglieder verwalten x⁵
Aktive Org-Einheit umschalten (bei mehreren Mitgliedschaften) x x x x
Eigene verbundene Anwendungen ansehen, trennen und ihre Änderungen zurücknehmen ⁹ x x x x
Große Änderung einer eigenen Anwendung bestätigen oder verwerfen (Seite „Große Änderung bestätigen") ⁹ x x x x

¹ Nur Mitglieder einer profit-fähigen Org-Einheit (sonst nur anlegen + die eigenen gestellten Aufträge eingeschränkt, Fußnote ⁶). ² Nur als Eskalation des eigenen Staffel-Auftrags an ein SK. ³ Nur die eigenen bzw. der eigenen Org-Einheit zugeordneten Einträge (Owner-Scope). Der Eigentümer eines persönlichen Eintrags (Lagereintrag/Schiff/Raffinerieauftrag) darf ihn immer sehen/bearbeiten, unabhängig vom Org-Stempel. ⁴ SK-Leads sehen die Übersicht für ihr SK (über das Lead-Flag, nicht über das reine Logistiker-Flag). ⁵ SK-Mitgliederverwaltung steht dem Lead dieses SK zu — nicht der globalen Offiziers-Rolle. (Offiziere stehen hier nur stellvertretend für „Lead"; der Lead pflegt die Mitglieder auf Leitung im Tab „Mitglieder“ seines SK.)

⁶ Auftraggeber-Recht: Mitglieder der anfordernden Einheit (auch nicht-profit-fähig) dürfen die von ihrer Einheit gestellten Aufträge in reduzierter Form sehen und — solange der Auftrag noch nicht geliefert ist — eingeschränkt bearbeiten (Mengen/Positionen/Mindestqualität/Kommentar; Entfernen löst zugeordnete Lagerbestände). Nicht die Warteschlange, keine fremden Aufträge, kein Status/Priorität/Umschreiben.

⁷ Nur ein Eintrag auf den eigenen Namen, und nur solange man am Einsatz angemeldet ist.

⁸ Für jeden Beteiligten, aber nur an Einsätzen der eigenen Org-Einheit (bzw. als Besitzer oder Co-Manager des Einsatzes). Einen fremden Einsatz nur sehen zu dürfen, genügt zum Buchen nicht — Buchen ist eine Verwaltungshandlung am Einsatz, kein Leserecht.

⁹ Nur im Browser mit deiner eigenen Anmeldung (Persönlich → Verbundene Anwendungen) — nicht über die verbundene Anwendung selbst.

Bereichsleitung/OL sind in der Matrix nicht als eigene Spalten geführt: sie verhalten sich wie Offiziere ihrer untergeordneten Einheiten (Bereich bzw. alles). Beispiel: ein Bereichsleiter verwaltet die Einsätze/das Lager/die Aufträge aller Staffeln seines Bereichs.

Bank-Berechtigungen (eigene Logik)

Die Kartellbank hängt nicht an Org-Einheiten, sondern an den Bank-Rollen plus Berechtigungs-Zeilen pro (Mitarbeiter, Konto):

Funktion Mitglied Bankmitarbeiter Bankleitung
Bankbereich + Konten mit Berechtigung sehen x x
Alle Konten / Halter / Berechtigungen sehen x
Einzahlen / Auszahlen / Überweisen x (je Konto-Flag) x
Konten anlegen/schließen, Berechtigungen vergeben, Storno x

Ohne Bankrolle sieht jedes Mitglied über die Org-Einheits-Bank (Sidebar → Organisation) die Konten, die es sehen darf, schreibgeschützt mit Kontostand und Buchungshistorie (ohne Halter-Spalte), und kann Anträge stellen.

Einzahlungen für alle, Auszahlungen/Transfers sichtbasiert: In der Org-Einheits-Bank kann jede angemeldete Person für jedes aktive Konto eine Einzahlung beantragen — auch für nicht sichtbare Konten sowie für Sonder- und Kartellbankkonten, und ohne Genehmigungslimit. Auszahlungen und Transfers dagegen darf nur stellen, wer das (Quell-)Konto sehen darf; das erstreckt sich auf jedes Mitglied, dem ein Konto per Freigabe sichtbar gemacht wurde, und schließt Sonderkonten und das Kartellbank-Konto als Quelle aus. Jeder Antrag wird ohnehin erst durch einen Bankmitarbeiter gebucht. Die/der Kontoverantwortliche wird über Anträge auf dem eigenen Konto benachrichtigt — beim Anlegen wie bei der Entscheidung. Das KRT-/Kartell-Konto hat dabei eine Sonderregel: Auszahlungen/Transfers werden je nach Betrag freigegeben — bis zur ersten Schwelle durch einen Bankmitarbeiter, darüber durch die Bankleitung, über der zweiten Schwelle durch die Organisationsleitung; die Schwellen pflegt allein die Bankleitung. Bucht ein Bankmitarbeiter direkt über seiner Stufe, wird die Buchung automatisch als Freigabeantrag angelegt statt abgewiesen. Die Organisationsleitung ist als Kontoverantwortliche des KRT-Kontos von dieser Staffel ausgenommen und braucht für eigene Anträge keine Freigabe. Allgemein gilt: wer für ein Konto verantwortlich ist (Staffelleiter, SK-Leiter, Bereichsleiter, OL beim KRT-Konto), unterliegt auf diesem Konto keinem Genehmigungslimit — gebucht wird der Antrag aber weiterhin durch einen Bankmitarbeiter. Wer welches Konto sehen darf und wie die Freigaben funktionieren, steht in der Kartellbank.

Datenschutz

Funktion Mitglied Offizier Bankleitung
Eigene Daten exportieren (PDF/JSON) x x x
Eigene Löschung beantragen / zurückziehen x x x

Beide Zeilen sind bewusst für jedes Mitglied offen — es sind deine Rechte. Sicher ist das, weil diese Funktionen keine Mitglieds-ID annehmen: sie arbeiten immer mit dem angemeldeten Konto, also gibt es keinen Parameter, mit dem man an fremde Daten käme. Mehr: Meine Daten & Datenschutz.

Bedarf & Spenden und Ankauf

Bedarf & Spenden und Ankauf folgen keiner Keycloak-Rolle, sondern der Einheit und der Bestellung: Leitung und Logistiker einer Einheit pflegen deren Bedarfe, nehmen Spenden und Lieferungen an. Handelsbeauftragte werden von der Bereichs- oder Organisationsleitung im Basetool bestellt — mit optionalem Enddatum und persönlichem Monatslimit — und verlieren die Fähigkeit mit dem Widerruf oder dem Ablauf sofort, ohne neue Anmeldung. Ein ehemaliger Handelsbeauftragter behält Lesezugriff auf seine laufenden Geschäfte und rechnet sie ab. Partner-Notizen sehen nur Handelsbeauftragte und die Leitung, nie die Bank oder die annehmende Einheit.

Default-Rolle

Wer sich neu anmeldet, landet im Wartezustand (siehe oben). Ein Konto ohne passende Rolle wird abgewiesen („Keine Rolle vergeben"), bis dir die Administration eine Rolle vergibt. Sobald du Rolle und Org-Einheit hast, kannst du loslegen. Änderungen an Rollen und Einheiten greifen ohne Ab- und Anmelden — je nach Art innerhalb weniger Minuten, spätestens nach rund fünf. Das gilt in beide Richtungen: entzogene Rollen und Rechte verschwinden ebenso von selbst wieder aus der Oberfläche. Wer nicht warten möchte, meldet sich einmal ab und wieder an: eine frische Anmeldung liest die Rechte immer neu, die Änderung greift dann sofort.

Ränge (Ranks)

Offiziere haben Ränge 1–12, KRT-Mitglieder 13–20. Dieser numerische Rang ist eine reine Anzeige-Ordnung: er beeinflusst die Sortierung in Listen und die Anforderungen im Beförderungssystem. Er ist unabhängig vom Führungsrang (Staffelleiter, Bereichsleiter, SK-Leiter …) — siehe oben „Zwei verschiedene Achsen: Führungsrang und numerischer Rang".


Verwandt: Organisation · Kartellbank · Discord-Anmeldung