Files
calendar/backend/permissions.py
T
2026-08-17 16:08:13 +02:00

55 lines
976 B
Python

from database import fetch_one
ROLE_LEVELS = {
"member": 1,
"admin": 2,
"owner": 3,
}
def get_role(room_id: int, user_id: int):
member = fetch_one(
"""
SELECT role
FROM room_members
WHERE room_id = ?
AND user_id = ?
""",
(room_id, user_id)
)
if member is None:
return None
return member["role"]
def has_role(
room_id: int,
user_id: int,
required_role: str
) -> bool:
role = get_role(room_id, user_id)
if role is None:
return False
return ROLE_LEVELS.get(role, 0) >= ROLE_LEVELS[required_role]
def whoami(room_id: int, user_id: int):
role = get_role(room_id, user_id)
if role is None:
return {
"member": False,
"role": None,
}
return {
"member": True,
"role": role,
"is_admin": ROLE_LEVELS[role] >= ROLE_LEVELS["admin"],
"is_owner": role == "owner",
}