Scrims · Permissions
2 modules · 22 exports · 4 repositories · 12 e2e tests · 3 routes
Who may do what in Scrims: the per-object permissions it builds with every place checking them, and the checks in its code. See Permissions for how authorization works and the reference for every role and feature.
Granted here
Built at read time into what the functions return, a list of the user ids holding each permission. Checks are listed wherever they are, other features' included.
| Permission | Granted by | Checked in |
|---|---|---|
MANAGE_REQUESTSon ScrimPost |
| Serverscrims.server.ts read directly scrims.tsx |
DELETE_POSTon ScrimPost |
| Serverscrims.server.ts read directly scrims.tsx |
CANCELon ScrimPost |
| Serverscrims.$id.server.ts ClientScrimMatchHeader.tsx |
MANAGE_TRACKINGon ScrimPost |
| Serverscrims.$id.server.ts |
CANCELon ScrimPostRequest |
| Serverscrims.server.ts |
Outside the system
Reading x.permissions.NAME directly skips hasPermission and with it the admin bypass, and authorizing an action on an object with isAdmin and friends is a bug. Some of these are deliberate, the permissions doc lists the boundaries.
- read directly in app/features/scrims/routes/scrims.tsx:603
post.permissions.DELETE_POST.includes(user.id) && - read directly in app/features/scrims/routes/scrims.tsx:621
post.permissions.MANAGE_REQUESTS.includes(