Bugfix `make_room_admin` fails for users that have left a private room (#10367)

Fixes: #10338
code_spécifique_watcha
Dirk Klimpel 3 years ago committed by GitHub
parent 93729719b8
commit d9b3637e44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      changelog.d/10367.bugfix
  2. 9
      synapse/rest/admin/rooms.py

@ -0,0 +1 @@
Bugfix `make_room_admin` fails for users that have left a private room.

@ -462,6 +462,7 @@ class MakeRoomAdminRestServlet(ResolveRoomIdMixin, RestServlet):
super().__init__(hs)
self.hs = hs
self.auth = hs.get_auth()
self.store = hs.get_datastore()
self.event_creation_handler = hs.get_event_creation_handler()
self.state_handler = hs.get_state_handler()
self.is_mine_id = hs.is_mine_id
@ -500,7 +501,13 @@ class MakeRoomAdminRestServlet(ResolveRoomIdMixin, RestServlet):
admin_user_id = None
for admin_user in reversed(admin_users):
if room_state.get((EventTypes.Member, admin_user)):
(
current_membership_type,
_,
) = await self.store.get_local_current_membership_for_user_in_room(
admin_user, room_id
)
if current_membership_type == "join":
admin_user_id = admin_user
break

Loading…
Cancel
Save