Stockboy Steve c7b96eebc4
CI / Test (pull_request) Successful in 22s
CI / Lint & Typecheck (pull_request) Successful in 30s
CI / Build & Push Docker Image (pull_request) Successful in 46s
feat(GRO-2513): gate Settings nav+route to manager/super-user, eliminate groomer 403
- App.tsx AdminLayout: fetch /api/staff/me on mount, filter NAV_LINKS so
  Settings only appears for role=manager or isSuperUser (fail-closed while
  loading). Guard /admin/settings route to redirect non-managers to /admin.
- Settings.tsx: replace parallel-fire useEffects with a single sequential
  flow — fetch /api/staff/me first, then only call /api/admin/settings for
  managers/super-users and /api/admin/auth-provider for super-users only.
  Groomers/receptionists never trigger the 403.
- UAT_PLAYBOOK.md §5.14: updated with role-gated test cases (TC-WEB-5.14.1–8)
  covering manager-sees-tab, groomer-no-tab, direct-URL redirect, zero-403,
  and shared-endpoint regression.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-06-25 01:56:23 +00:00
2026-05-02 21:35:00 +00:00
2026-05-14 17:42:22 +00:00

web

GroomBook web app (extracted from groombook/app monorepo)

S
Description
GroomBook web app (extracted from groombook/app monorepo)
Readme 42 MiB
Languages
TypeScript 99.5%
CSS 0.3%