debug: add detailed logging to add_admin for troubleshooting

This commit is contained in:
shokollm
2026-04-04 16:08:46 +00:00
parent cce71e55c2
commit 6e5006b429

View File

@@ -36,22 +36,51 @@ class BountyService:
self, room_id: int, admin_user_id: int, requesting_user_id: int self, room_id: int, admin_user_id: int, requesting_user_id: int
) -> None: ) -> None:
"""Add an admin to a room. Requires admin permission, or self-promotion if first admin.""" """Add an admin to a room. Requires admin permission, or self-promotion if first admin."""
import logging
logging.info(
f"add_admin: room_id={room_id}, admin_user_id={admin_user_id}, requesting_user_id={requesting_user_id}"
)
room_data = self._storage.load(room_id) room_data = self._storage.load(room_id)
logging.info(
f"add_admin: loaded room_data.admin_user_ids={room_data.admin_user_ids if room_data else None}"
)
has_no_admins = room_data is None or not room_data.admin_user_ids has_no_admins = room_data is None or not room_data.admin_user_ids
is_self_promotion = requesting_user_id == admin_user_id is_self_promotion = requesting_user_id == admin_user_id
logging.info(
f"add_admin: has_no_admins={has_no_admins}, is_self_promotion={is_self_promotion}"
)
if not self.is_admin(room_id, requesting_user_id): if not self.is_admin(room_id, requesting_user_id):
if not (has_no_admins and is_self_promotion): if not (has_no_admins and is_self_promotion):
logging.error("add_admin: PermissionError raised")
raise PermissionError("Only admins can add admins.") raise PermissionError("Only admins can add admins.")
logging.info("add_admin: Self-promotion allowed")
if room_data is None: if room_data is None:
room_data = RoomData( room_data = RoomData(
room_id=room_id, bounties=[], next_id=1, admin_user_ids=[] room_id=room_id, bounties=[], next_id=1, admin_user_ids=[]
) )
logging.info("add_admin: Created new RoomData")
logging.info(
f"add_admin: Before append, room_data.admin_user_ids={room_data.admin_user_ids}"
)
if admin_user_id not in (room_data.admin_user_ids or []): if admin_user_id not in (room_data.admin_user_ids or []):
(room_data.admin_user_ids or []).append(admin_user_id) logging.info(f"add_admin: Appending {admin_user_id}")
room_data.admin_user_ids.append(admin_user_id)
logging.info(
f"add_admin: After append, room_data.admin_user_ids={room_data.admin_user_ids}"
)
self._storage.save(room_data) self._storage.save(room_data)
logging.info("add_admin: Saved")
else:
logging.info(
f"add_admin: {admin_user_id} already in admin_user_ids, not appending"
)
def remove_admin( def remove_admin(
self, room_id: int, admin_user_id: int, requesting_user_id: int self, room_id: int, admin_user_id: int, requesting_user_id: int