Roles and permissions

Role flags and what each one allows.

Staff access comes from the signed-in user's Role. Every custom mutation checks the flag it needs on the server; hiding a page is not the control.

FlagAllows
canAccessDashboardSigning in to /dashboard
canManageShowsShows, templates, tiers, sales windows, cancelling
canManageTalentComedians, lineups, offers, runs, open mic
canManageDoorCheck-in, guest list, seating
canManageChecksTable checks and check payments
canManagePayoutsClosing the night, payouts, pay statements
canManageOrdersOrders, comps, the waitlist
canIssueRefundsRefunds
canManageSettingsVenue settings, floor and menu, store
canManagePayments, canReadPaymentsPayment providers and payment records
canReadAuditAudit events
canManageOnboardingRunning setup
canManagePeople, canSeeOtherPeople, canEditOtherPeople, canReadPeople, canUpdatePeopleStaff users
canManageRolesRoles

The first user created at /dashboard/init gets every flag. Refunds and comps above the thresholds also need approval from a different user, so one person cannot approve their own large refund.