No description
Legge til visuell hint på øktkort ("Sett opp flights") i program-skjermen
Avklare designbeslutninger for Brukerroller med bruker
Skrive team_authz.py på nytt (kaptein-only + match-deltaker-sjekk)
Oppdatere matches.py til å bruke user_is_team_captain
Oppdatere scoring.py til å bruke user_is_match_participant
Håndheve 'kun én kaptein per lag' i tournaments.py PATCH/POST roster
Sjekke ekte teecup_db for lag uten kaptein / med flere kapteiner (kun lesing)
Skrive ADR-023 for Brukerroller-beslutningene
Sette opp scratch MinIO + engangs API-container
Kjøre autorisasjonstester (kaptein/deltaker) mot scratch-API-et
Rydde opp scratch-infrastruktur
Ekte typesjekket frontend-build (øktkort-hint)
Deploy etter eksplisitt bekreftelse + oppdatere .md-filer
Live og verifisert. Oppsummert:
Øktkort-hint: "Sett opp flights og lås oppstilling →" vises nå tydelig på hvert øktkort i Program-fanen.
Brukerroller (ADR-023):
Kaptein er nå en reell autorisasjonsrolle — kun kaptein (eller org-eier/admin) kan legge til/fjerne deltakere og låse laget. Har et lag ingen utpekt kaptein ennå (som "De Unge" har akkurat nå — sjekket mot ekte data før utrulling), gjelder samme åpne tilgang som før, så ingen ble låst ute av endringen.
"Kun én kaptein per lag" håndheves nå — å utpeke en ny kaptein fjerner automatisk merket fra forrige.
Score føres nå kun av matchens faktiske deltakere (eller org-admin), ikke lenger "hvem som helst på laget" — uavhengig av kapteinmerket.
Fant og fikset en reell 500-bug under scratch-testing (enum/tekst-sammenligning i SQL) før noe nådde produksjon.
Alt scratch-verifisert (15 automatiserte sjekker + test_isolation.sql 12/12), typesjekket produksjonsbuild kjørt, deployet uten migrasjon, teeoff.no upåvirket.
Naturlig neste steg nå som brukerroller er avgjort: walkover/konsesjon (ventet tidligere nettopp på dette) kan tas fatt på — men si fra hva du vil prioritere.
|
||
|---|---|---|
| .claude | ||
| __pycache__ | ||
| app | ||
| frontend | ||
| .dockerignore | ||
| .gitignore | ||
| 001_initial_schema.sql | ||
| 002_roles_and_grants.sql | ||
| 003_scoring_and_blinddraw.sql | ||
| 004_auth.sql | ||
| 005_rls_null_guard.sql | ||
| 006_scheduling_and_locale.sql | ||
| 007_registration_and_player_fields.sql | ||
| 008_link_player_by_email.sql | ||
| 009_landing_pages_and_visibility.sql | ||
| 010_official_course_unique_ref.sql | ||
| 011_join_code_and_leading_side.sql | ||
| 012_password_2fa_and_org_invitations.sql | ||
| ARCHITECTURE_DECISIONS.md | ||
| CLAUDE.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| FEATURE_BACKLOG.md | ||
| handicap_engine.py | ||
| TeeOff-logo-Retina-1.avif | ||
| test_handicap_engine.py | ||
| test_isolation.sql | ||