Verify coach read-only view of team rosters #131

Closed
opened 2026-03-28 16:45:29 +00:00 by forgejo_admin · 0 comments

Type

Feature

Lineage

Discovered during girls roster validation 2026-03-28. Related to westside-app#129.

Repo

forgejo_admin/westside-app

User Story

As a coach, I want to view my team roster with player photos so that I know my players on sight (WS-S13).

Context

Coaches (Keycloak role: coach) should be able to see their team roster but NOT assign/move players. The admin draft board currently shows assignment buttons. Need to verify that the coach role gets a read-only view, or implement one if it doesn't exist. The coach dashboard at /coach or /admin should show their assigned team's roster.

File Targets

Files the agent should inspect:

  • src/routes/(app)/admin/teams/+page.svelte -- does it check role before showing assign buttons?
  • src/routes/(app)/coach/ -- does a coach route exist?
  • src/lib/stores/ -- auth store, role checking
  • src/hooks.server.ts -- route guards

Files the agent should modify if needed:

  • Coach-facing route to show read-only roster view

Files the agent should NOT touch:

  • Backend API endpoints
  • Admin assignment logic

Acceptance Criteria

  • Coach role user sees their team roster with player names, photos, positions
  • Coach role user CANNOT assign/move players between teams
  • Coach role user CANNOT see admin-only controls
  • Route properly guards against unauthorized access

Test Expectations

  • Login as coach role user, verify read-only view
  • Login as admin role user, verify full controls visible
  • Run command: npm run dev then browser validation with different roles

Constraints

  • Match existing UI style
  • Do not break admin functionality
  • Mobile-first

Checklist

  • PR opened
  • Tested with coach role
  • No unrelated changes
  • project-westside-basketball -- project this affects
  • westside-app#129 -- parent validation ticket
### Type Feature ### Lineage Discovered during girls roster validation 2026-03-28. Related to westside-app#129. ### Repo `forgejo_admin/westside-app` ### User Story As a coach, I want to view my team roster with player photos so that I know my players on sight (WS-S13). ### Context Coaches (Keycloak role: coach) should be able to see their team roster but NOT assign/move players. The admin draft board currently shows assignment buttons. Need to verify that the coach role gets a read-only view, or implement one if it doesn't exist. The coach dashboard at `/coach` or `/admin` should show their assigned team's roster. ### File Targets Files the agent should inspect: - `src/routes/(app)/admin/teams/+page.svelte` -- does it check role before showing assign buttons? - `src/routes/(app)/coach/` -- does a coach route exist? - `src/lib/stores/` -- auth store, role checking - `src/hooks.server.ts` -- route guards Files the agent should modify if needed: - Coach-facing route to show read-only roster view Files the agent should NOT touch: - Backend API endpoints - Admin assignment logic ### Acceptance Criteria - [ ] Coach role user sees their team roster with player names, photos, positions - [ ] Coach role user CANNOT assign/move players between teams - [ ] Coach role user CANNOT see admin-only controls - [ ] Route properly guards against unauthorized access ### Test Expectations - [ ] Login as coach role user, verify read-only view - [ ] Login as admin role user, verify full controls visible - Run command: `npm run dev` then browser validation with different roles ### Constraints - Match existing UI style - Do not break admin functionality - Mobile-first ### Checklist - [ ] PR opened - [ ] Tested with coach role - [ ] No unrelated changes ### Related - `project-westside-basketball` -- project this affects - `westside-app#129` -- parent validation ticket
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo_admin/westside-landing#131
No description provided.