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

Fixes: #10338
This commit is contained in:
Dirk Klimpel 2021-07-13 12:53:45 +02:00 committed by GitHub
parent 93729719b8
commit d9b3637e44
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

1
changelog.d/10367.bugfix Normal file
View File

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

View File

@ -462,6 +462,7 @@ class MakeRoomAdminRestServlet(ResolveRoomIdMixin, RestServlet):
super().__init__(hs) super().__init__(hs)
self.hs = hs self.hs = hs
self.auth = hs.get_auth() self.auth = hs.get_auth()
self.store = hs.get_datastore()
self.event_creation_handler = hs.get_event_creation_handler() self.event_creation_handler = hs.get_event_creation_handler()
self.state_handler = hs.get_state_handler() self.state_handler = hs.get_state_handler()
self.is_mine_id = hs.is_mine_id self.is_mine_id = hs.is_mine_id
@ -500,7 +501,13 @@ class MakeRoomAdminRestServlet(ResolveRoomIdMixin, RestServlet):
admin_user_id = None admin_user_id = None
for admin_user in reversed(admin_users): 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 admin_user_id = admin_user
break break