Docs Roles & permissions
Reference

Roles & permissions

FightReg checks every action against a permission slug: 67 permissions across 20 modules, distributed over twelve roles. On top of that, every staff member can be granted individual rights per competition, beyond their role.

12
roles in roles
67
permissions
20
modules
7
competition-day roles
1
role with system.manage
📊

Role overview

A role is the baseline. For a single competition it is granted through competition_staff — a trainer can run a mat for one day without losing their own role. The figure behind each role is counted, not estimated: it comes from the assignments in install.php.

🖥 Platform level
SA

Super Administrator

super_admin

67 / 67

Everything. The only role holding system.manage — platform settings, user administration, mail server, keys for speech and AI.

100 %

platform

announce arenas billing brackets categories checkin coach competition forms notifications organizer participants print schools screen settings startlists system translations users
🏆 Event level
VA

Competition Admin

admin

62 / 67

One competition, end to end: categories, participants, brackets, mats, billing, settings. Without system.manage, users.edit and without creating, deleting or duplicating a competition.

93 %

base role · assignable per competition · competition

announce arenas billing brackets categories checkin coach competition forms notifications organizer participants print schools screen settings startlists translations users
🥋 Club
TR

Trainer

trainer

14 / 67

Registers the athletes of their club, maintains them, sees start lists, brackets and their own invoice — and creates the club’s corner coaches.

21 %

base role · club

arenas billing brackets categories checkin coach competition participants schools startlists
CO

Coach

coach

12 / 67

The coach’s rights without the invoice: they look after athletes on the day, they do not pay. Corner coaches are created by the trainer, not by another coach.

18 %

base role · club

arenas brackets categories checkin coach competition participants schools startlists
⏱ Competition day (staff)
SO

Head Judge

head_judge

20 / 67

The widest role on competition day: generate, edit, score and revert brackets, manage and assign mats, run forms sessions.

30 %

assignable per competition · competition

arenas brackets categories competition forms participants startlists
RM

Ring Manager

ring_manager

15 / 67

Runs a mat: order, scoring, status and results — without generating the brackets themselves.

22 %

assignable per competition · competition

arenas brackets categories competition forms participants startlists
KR

Judge

judge

10 / 67

Scores fights and forms at the mat, sees bracket, order and start list. No changes to structure or master data.

15 %

assignable per competition · competition

arenas brackets competition forms startlists
AN

Announcer

announcer

10 / 67

Runs the announcement queue, speaks or triggers announcements, and sets voice and breaks.

15 %

assignable per competition · competition

announce arenas brackets competition forms participants startlists
CI

Check-in Staff

checkin_staff

8 / 67

Admission and weigh-in: call participants, check them in, review documents — nothing else.

12 %

assignable per competition · competition

categories checkin competition participants startlists
RW

Billing

billing

9 / 67

View, edit and send invoices, maintain surcharges and discounts, read the statistics — and print through the print agent.

13 %

assignable per competition · competition

billing competition organizer print
BE

Observer

observer

7 / 67

Watches and changes nothing: categories, participants, start lists, brackets, mats. The role for guests, press and federation representatives.

10 %

assignable per competition · competition

arenas brackets categories competition forms participants startlists
🏅 Participants
TN

Participant

participant

2 / 67

The athlete’s own account. Almost nothing in the permission table — what they see belongs to them and hangs off their account, not off a permission.

3 %

base role · own account

arenas competition
⚖️

Module comparison

every permission in the module some of them none
ModuleSAVATRCOSORMKRANCIRWBETN
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)

Counted from install.php (per-role assignment) against src/Config/Permissions.php (the 67 slugs).

📋

All 67 permissions

The slug is what counts: requirePermission() checks it in the backend, can() in the frontend. The right-hand column lists the roles holding it by default — individual per-competition rights come on top.

announce (4)

SlugMeaningRoles
announce.viewView announcementsSA, VA, AN
announce.manageManage announcementsSA, VA, AN
announce.speakPlay TTSSA, VA, AN
announce.settingsTTS settingsSA, VA, AN

arenas (6)

SlugMeaningRoles
arenas.viewView arenasSA, VA, TR, CO, SO, RM, KR, AN, BE, TN
arenas.manageManage arenasSA, VA, SO, RM
arenas.assignAssign categoriesSA, VA, SO, RM
arenas.statusChange arena statusSA, VA, SO, RM, KR
arenas.notifyArena notificationSA, VA
arenas.resultsScore at the arenaSA, VA, SO, RM, KR

billing (6)

SlugMeaningRoles
billing.viewView invoicesSA, VA, TR, RW
billing.editEdit invoicesSA, VA, RW
billing.sendSend invoicesSA, VA, RW
billing.surchargesManage surchargesSA, VA, RW
billing.discountsManage discountsSA, VA, RW
billing.statsBilling statisticsSA, VA, RW

brackets (7)

SlugMeaningRoles
brackets.viewView bracketsSA, VA, TR, CO, SO, RM, KR, AN, BE
brackets.editEdit bracketsSA, VA, SO
brackets.generateGenerate bracketSA, VA, SO
brackets.scoreScore matchesSA, VA, SO, RM, KR
brackets.revertRevert match resultSA, VA, SO
brackets.settingsBracket settingsSA, VA, SO
brackets.fightorderView fight orderSA, VA, TR, CO, SO, RM, KR

categories (4)

SlugMeaningRoles
categories.viewView categoriesSA, VA, TR, CO, SO, RM, CI, BE
categories.editEdit categoriesSA, VA
categories.mergeMerge categoriesSA, VA
categories.statusChange category statusSA, VA, SO, RM

checkin (4)

SlugMeaningRoles
checkin.viewView check-inSA, VA, CI
checkin.performPerform check-inSA, VA, CI
checkin.callCall participantSA, VA, CI
checkin.documentsUpload documentsSA, VA, TR, CO, CI

coach (2)

SlugMeaningRoles
coach.manageCreate and manage coachesSA, VA, TR
coach.assignAssign participants to coachesSA, VA, TR, CO

competition (7)

SlugMeaningRoles
competition.viewView competitionSA, VA, TR, CO, SO, RM, KR, AN, CI, RW, BE, TN
competition.editEdit competitionSA, VA
competition.createCreate competitionSA
competition.deleteDelete competitionSA
competition.duplicateDuplicate competitionSA
competition.statsView statisticsSA, VA
competition.dashboardView dashboardSA, VA

forms (3)

SlugMeaningRoles
forms.viewView forms scoringSA, VA, SO, RM, KR, AN, BE
forms.scoreScore formsSA, VA, SO, RM, KR
forms.manageManage forms sessionsSA, VA, SO

notifications (1)

SlugMeaningRoles
notifications.sendSend notificationsSA, VA

organizer (2)

SlugMeaningRoles
organizer.viewView organizerSA, VA, RW
organizer.editEdit organizerSA, VA

participants (3)

SlugMeaningRoles
participants.viewView participantsSA, VA, TR, CO, SO, RM, AN, CI, BE
participants.editEdit participantsSA, VA, TR, CO
participants.enrollEnroll participantsSA, VA, TR, CO

print (1)

SlugMeaningRoles
print.agentConfigure print agentSA, VA, RW

schools (3)

SlugMeaningRoles
schools.viewView schoolsSA, VA, TR, CO
schools.approveApprove schoolsSA, VA
schools.manageManage schoolsSA, VA

screen (1)

SlugMeaningRoles
screen.manageManage main screenSA, VA

settings (5)

SlugMeaningRoles
settings.viewView settingsSA, VA
settings.editEdit settingsSA, VA
settings.aiAI settingsSA, VA
settings.languagesManage languagesSA, VA
settings.mailEmail settingsSA, VA

startlists (2)

SlugMeaningRoles
startlists.viewView startlistsSA, VA, TR, CO, SO, RM, KR, AN, CI, BE
startlists.reorderReorder startlistsSA, VA

system (1)

SlugMeaningRoles
system.manageSystem managementSA

translations (2)

SlugMeaningRoles
translations.editEdit translationsSA, VA
translations.invitesInvite translatorsSA, VA

users (3)

SlugMeaningRoles
users.viewView usersSA, VA
users.editManage usersSA
users.staffAssign staffSA, VA
🧩

Two special cases

Federation admin

Is not in roles. Whoever administers a federation is listed in federation_admins — the responsibility hangs off the federation, not off a role. That is why this page counts twelve roles and still talks about federation administration.

Spectator

Is not a role but the absence of a login. The live page, the venue map and mat status are deliberately open; start lists appear there only once the organiser releases them.

ℹ️
competition.view is not a permission but a membership marker: every role has it and nothing checks it. It says “this role belongs to a competition” — in one place instead of twelve lists.