restructured

This commit is contained in:
ben
2026-08-17 16:08:13 +02:00
parent 371b6364fe
commit d47a46c81e
2 changed files with 228 additions and 172 deletions
+33 -12
View File
@@ -1,7 +1,14 @@
from database import fetch_one
def get_room_role(room_id, user_id):
ROLE_LEVELS = {
"member": 1,
"admin": 2,
"owner": 3,
}
def get_role(room_id: int, user_id: int):
member = fetch_one(
"""
SELECT role
@@ -9,10 +16,7 @@ def get_room_role(room_id, user_id):
WHERE room_id = ?
AND user_id = ?
""",
(
room_id,
user_id
)
(room_id, user_id)
)
if member is None:
@@ -21,14 +25,31 @@ def get_room_role(room_id, user_id):
return member["role"]
def has_role(room_id, user_id, allowed_roles):
role = get_room_role(
room_id,
user_id
)
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 in allowed_roles
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",
}