Rollen & Berechtigungen
FightReg prüft jede Aktion gegen einen Berechtigungs-Slug: 67 Berechtigungen in 20 Modulen, verteilt auf zwölf Rollen. Zusätzlich kann jeder Mitarbeiter je Veranstaltung Einzelrechte bekommen, die über seine Rolle hinausgehen.
rolessystem.manageRollenübersicht
Eine Rolle ist die Grundausstattung. Für einen einzelnen Wettkampf kommt sie über competition_staff dazu — ein Trainer kann dort für einen Tag Flächenleitung sein, ohne seine Rolle zu verlieren. Die Zahl hinter jeder Rolle ist gezählt, nicht geschätzt: sie kommt aus den Zuweisungen in install.php.
Super-Administrator
super_admin
Alles. Die einzige Rolle mit system.manage — Plattformeinstellungen, Benutzerverwaltung, Mailserver, Schlüssel für Sprachausgabe und KI.
Plattform
Veranstaltungs-Admin
admin
Eine Veranstaltung vollständig: Kategorien, Teilnehmer, Bäume, Flächen, Abrechnung, Einstellungen. Ohne system.manage, users.edit und ohne Anlegen, Löschen oder Kopieren einer Veranstaltung.
Grundrolle · je Veranstaltung vergebbar · Veranstaltung
Trainer
trainer
Meldet die Sportler seines Vereins, pflegt sie, sieht Startlisten, Bäume und die eigene Rechnung — und legt die Coaches seines Vereins an.
Grundrolle · Verein
Coach
coach
Die Rechte des Trainers ohne die Rechnung: er betreut am Wettkampftag, er zahlt nicht. Coaches legt der Trainer an, nicht ein anderer Coach.
Grundrolle · Verein
Schiedsrichter-Obmann
head_judge
Die weitestgehende Rolle am Wettkampftag: Bäume erzeugen, ändern, werten und zurücknehmen, Flächen verwalten und belegen, Formen-Sitzungen führen.
je Veranstaltung vergebbar · Veranstaltung
Ringrichter
ring_manager
Führt eine Fläche: Reihenfolge, Wertung, Status und Ergebnisse — ohne die Bäume selbst zu erzeugen.
je Veranstaltung vergebbar · Veranstaltung
Kampfrichter
judge
Wertet Kämpfe und Formen an der Fläche, sieht Baum, Reihenfolge und Startliste. Keine Änderung an Struktur oder Stammdaten.
je Veranstaltung vergebbar · Veranstaltung
Ansager
announcer
Führt die Ansage-Warteschlange, spricht Ansagen ein oder aus und stellt Stimme und Pausen ein.
je Veranstaltung vergebbar · Veranstaltung
Check-in Mitarbeiter
checkin_staff
Einlass und Einwiegen: Teilnehmer aufrufen, prüfen, Dokumente sichten — sonst nichts.
je Veranstaltung vergebbar · Veranstaltung
Rechnungswesen
billing
Rechnungen sehen, ändern, versenden, Aufschläge und Rabatte pflegen, Auswertung — und drucken über den Print Agent.
je Veranstaltung vergebbar · Veranstaltung
Beobachter
observer
Sieht zu und ändert nichts: Kategorien, Teilnehmer, Startlisten, Bäume, Flächen. Die Rolle für Gäste, Presse und Verbandsvertreter.
je Veranstaltung vergebbar · Veranstaltung
Teilnehmer
participant
Der eigene Zugang des Sportlers. In der Rechtetabelle steht fast nichts — was er sieht, gehört ihm selbst und hängt an seinem Konto, nicht an einer Berechtigung.
Grundrolle · eigener Zugang
Modulvergleich
| Modul | SA | VA | TR | CO | SO | RM | KR | AN | CI | RW | BE | TN |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| announce (4) | ||||||||||||
| arenas (6) | ||||||||||||
| billing (6) | ||||||||||||
| brackets (7) | ||||||||||||
| categories (4) | ||||||||||||
| checkin (4) | ||||||||||||
| coach (2) | ||||||||||||
| competition (7) | ||||||||||||
| forms (3) | ||||||||||||
| notifications (1) | ||||||||||||
| organizer (2) | ||||||||||||
| participants (3) | ||||||||||||
| print (1) | ||||||||||||
| schools (3) | ||||||||||||
| screen (1) | ||||||||||||
| settings (5) | ||||||||||||
| startlists (2) | ||||||||||||
| system (1) | ||||||||||||
| translations (2) | ||||||||||||
| users (3) |
Gezählt aus install.php (Zuweisung je Rolle) gegen src/Config/Permissions.php (die 67 Slugs).
Alle 67 Berechtigungen
Der Slug ist die Wahrheit: im Backend prüft ihn requirePermission(), im Frontend can(). Die Spalte rechts nennt die Rollen, die ihn von Haus aus haben — Einzelrechte je Veranstaltung kommen hinzu.
announce (4)
| Slug | Bedeutung | Rollen |
|---|---|---|
announce.view | Hallenansage sehen | SA, VA, AN |
announce.manage | Ansagen verwalten | SA, VA, AN |
announce.speak | TTS abspielen | SA, VA, AN |
announce.settings | TTS-Einstellungen | SA, VA, AN |
arenas (6)
| Slug | Bedeutung | Rollen |
|---|---|---|
arenas.view | Arenen sehen | SA, VA, TR, CO, SO, RM, KR, AN, BE, TN |
arenas.manage | Arenen verwalten | SA, VA, SO, RM |
arenas.assign | Kategorien zuweisen | SA, VA, SO, RM |
arenas.status | Arena-Status ändern | SA, VA, SO, RM, KR |
arenas.notify | Arena-Benachrichtigung | SA, VA |
arenas.results | Ergebnisse an der Fläche | SA, VA, SO, RM, KR |
billing (6)
| Slug | Bedeutung | Rollen |
|---|---|---|
billing.view | Rechnungen sehen | SA, VA, TR, RW |
billing.edit | Rechnungen erstellen/bearbeiten | SA, VA, RW |
billing.send | Rechnungen versenden | SA, VA, RW |
billing.surcharges | Zuschläge verwalten | SA, VA, RW |
billing.discounts | Rabatte verwalten | SA, VA, RW |
billing.stats | Billing-Statistiken | SA, VA, RW |
brackets (7)
| Slug | Bedeutung | Rollen |
|---|---|---|
brackets.view | Brackets sehen | SA, VA, TR, CO, SO, RM, KR, AN, BE |
brackets.edit | Brackets erstellen/bearbeiten | SA, VA, SO |
brackets.generate | Bracket generieren | SA, VA, SO |
brackets.score | Ergebnisse eintragen | SA, VA, SO, RM, KR |
brackets.revert | Ergebnis zurücksetzen | SA, VA, SO |
brackets.settings | Bracket-Einstellungen | SA, VA, SO |
brackets.fightorder | Kampfplan sehen | SA, VA, TR, CO, SO, RM, KR |
categories (4)
| Slug | Bedeutung | Rollen |
|---|---|---|
categories.view | Kategorien sehen | SA, VA, TR, CO, SO, RM, CI, BE |
categories.edit | Kategorien bearbeiten | SA, VA |
categories.merge | Kategorien zusammenlegen | SA, VA |
categories.status | Kategorie-Status ändern | SA, VA, SO, RM |
checkin (4)
| Slug | Bedeutung | Rollen |
|---|---|---|
checkin.view | Check-in sehen | SA, VA, CI |
checkin.perform | Check-in durchführen | SA, VA, CI |
checkin.call | Teilnehmer aufrufen | SA, VA, CI |
checkin.documents | Dokumente hochladen | SA, VA, TR, CO, CI |
coach (2)
| Slug | Bedeutung | Rollen |
|---|---|---|
coach.manage | Coaches anlegen und verwalten | SA, VA, TR |
coach.assign | Coaches Teilnehmer zuordnen | SA, VA, TR, CO |
competition (7)
| Slug | Bedeutung | Rollen |
|---|---|---|
competition.view | Veranstaltung sehen | SA, VA, TR, CO, SO, RM, KR, AN, CI, RW, BE, TN |
competition.edit | Veranstaltung bearbeiten | SA, VA |
competition.create | Veranstaltung anlegen | SA |
competition.delete | Veranstaltung löschen | SA |
competition.duplicate | Veranstaltung duplizieren | SA |
competition.stats | Statistiken sehen | SA, VA |
competition.dashboard | Dashboard sehen | SA, VA |
forms (3)
| Slug | Bedeutung | Rollen |
|---|---|---|
forms.view | Formen-Bewertung sehen | SA, VA, SO, RM, KR, AN, BE |
forms.score | Formen bewerten | SA, VA, SO, RM, KR |
forms.manage | Formen-Sitzungen verwalten | SA, VA, SO |
notifications (1)
| Slug | Bedeutung | Rollen |
|---|---|---|
notifications.send | Benachrichtigungen senden | SA, VA |
organizer (2)
| Slug | Bedeutung | Rollen |
|---|---|---|
organizer.view | Veranstalter sehen | SA, VA, RW |
organizer.edit | Veranstalter bearbeiten | SA, VA |
participants (3)
| Slug | Bedeutung | Rollen |
|---|---|---|
participants.view | Teilnehmer sehen | SA, VA, TR, CO, SO, RM, AN, CI, BE |
participants.edit | Teilnehmer bearbeiten | SA, VA, TR, CO |
participants.enroll | Teilnehmer anmelden | SA, VA, TR, CO |
print (1)
| Slug | Bedeutung | Rollen |
|---|---|---|
print.agent | Print Agent einrichten | SA, VA, RW |
schools (3)
| Slug | Bedeutung | Rollen |
|---|---|---|
schools.view | Schulen sehen | SA, VA, TR, CO |
schools.approve | Schulen freischalten | SA, VA |
schools.manage | Schulen verwalten | SA, VA |
screen (1)
| Slug | Bedeutung | Rollen |
|---|---|---|
screen.manage | Hauptscreen verwalten | SA, VA |
settings (5)
| Slug | Bedeutung | Rollen |
|---|---|---|
settings.view | Einstellungen sehen | SA, VA |
settings.edit | Einstellungen ändern | SA, VA |
settings.ai | KI-Einstellungen | SA, VA |
settings.languages | Sprachen verwalten | SA, VA |
settings.mail | E-Mail-Einstellungen | SA, VA |
startlists (2)
| Slug | Bedeutung | Rollen |
|---|---|---|
startlists.view | Startlisten sehen | SA, VA, TR, CO, SO, RM, KR, AN, CI, BE |
startlists.reorder | Startreihenfolge ändern | SA, VA |
system (1)
| Slug | Bedeutung | Rollen |
|---|---|---|
system.manage | System-Verwaltung | SA |
translations (2)
| Slug | Bedeutung | Rollen |
|---|---|---|
translations.edit | Übersetzungen bearbeiten | SA, VA |
translations.invites | Übersetzer einladen | SA, VA |
users (3)
| Slug | Bedeutung | Rollen |
|---|---|---|
users.view | Benutzer sehen | SA, VA |
users.edit | Benutzer verwalten | SA |
users.staff | Staff zuordnen | SA, VA |
Zwei Sonderfälle
Verband-Admin
Steht nicht in roles. Wer einen Verband verwaltet, steht in federation_admins — die Zuständigkeit hängt am Verband, nicht an einer Rolle. Das ist der Grund, warum diese Seite zwölf Rollen zählt und trotzdem von Verbandsverwaltung spricht.
Zuschauer
Ist keine Rolle, sondern die Abwesenheit einer Anmeldung. Die Live-Seite, der Hallenplan und der Flächenstatus sind bewusst offen; Startlisten erscheinen dort erst, wenn der Veranstalter sie freigibt.
competition.view ist keine Berechtigung, sondern eine Zugehörigkeitsmarke: sie wird jeder Rolle gegeben und nirgends geprüft. Sie sagt „diese Rolle gehört zu einer Veranstaltung“ — an einer Stelle statt in zwölf Listen.