teecup/app/team_authz.py

24 lines
683 B
Python
Raw Normal View History

"""
Delt autorisasjonssjekk: er brukeren rostret et gitt lag?
Brukt av både matches.py (deltaker/lås-skriving) og scoring.py (score-skriving)
se plan for begrunnelsen (bevisst IKKE kapteins-only ennå, FEATURE_BACKLOG).
"""
from asyncpg import Connection
async def user_may_act_for_team(conn: Connection, team_id: str, user_id: str) -> bool:
"""Brukeren har en team_roster-rad på laget."""
return await conn.fetchval(
"""
SELECT EXISTS (
SELECT 1 FROM team_roster tr
JOIN player p ON p.id = tr.player_id
WHERE tr.team_id = $1 AND p.user_id = $2
)
""",
team_id,
user_id,
)