Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit d9b3637

Browse files
authored
Bugfix make_room_admin fails for users that have left a private room (#10367)
Fixes: #10338
1 parent 9372971 commit d9b3637

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

changelog.d/10367.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Bugfix `make_room_admin` fails for users that have left a private room.

synapse/rest/admin/rooms.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ def __init__(self, hs: "HomeServer"):
462462
super().__init__(hs)
463463
self.hs = hs
464464
self.auth = hs.get_auth()
465+
self.store = hs.get_datastore()
465466
self.event_creation_handler = hs.get_event_creation_handler()
466467
self.state_handler = hs.get_state_handler()
467468
self.is_mine_id = hs.is_mine_id
@@ -500,7 +501,13 @@ async def on_POST(
500501
admin_user_id = None
501502

502503
for admin_user in reversed(admin_users):
503-
if room_state.get((EventTypes.Member, admin_user)):
504+
(
505+
current_membership_type,
506+
_,
507+
) = await self.store.get_local_current_membership_for_user_in_room(
508+
admin_user, room_id
509+
)
510+
if current_membership_type == "join":
504511
admin_user_id = admin_user
505512
break
506513

0 commit comments

Comments
 (0)