28 lines
1014 B
Markdown
28 lines
1014 B
Markdown
---
|
|
# nuzlocke-tracker-5svj
|
|
title: Expose admin status to frontend via user API
|
|
status: todo
|
|
type: task
|
|
priority: normal
|
|
created_at: 2026-03-21T10:06:20Z
|
|
updated_at: 2026-03-21T10:06:24Z
|
|
parent: nuzlocke-tracker-ce4o
|
|
blocked_by:
|
|
- nuzlocke-tracker-dwah
|
|
---
|
|
|
|
The frontend needs to know if the current user is an admin so it can show/hide the Admin nav link and protect admin routes client-side.
|
|
|
|
## Checklist
|
|
|
|
- [ ] Add `is_admin` field to the user response schema (`/api/users/me` endpoint)
|
|
- [ ] Update `AuthContext` to fetch `/api/users/me` after login and store `isAdmin` in context
|
|
- [ ] Expose `isAdmin` boolean from `useAuth()` hook
|
|
- [ ] Handle edge case: user exists in Supabase but not yet in local DB (first login creates user row with `is_admin=false`)
|
|
|
|
## Files to change
|
|
|
|
- `backend/src/app/schemas/user.py` or equivalent — add `is_admin` to response
|
|
- `backend/src/app/api/users.py` — ensure `/me` returns `is_admin`
|
|
- `frontend/src/contexts/AuthContext.tsx` — fetch and store admin status
|