forked from MirrorHub/synapse
Bugfix make_room_admin
fails for users that have left a private room (#10367)
Fixes: #10338
This commit is contained in:
parent
93729719b8
commit
d9b3637e44
2 changed files with 9 additions and 1 deletions
1
changelog.d/10367.bugfix
Normal file
1
changelog.d/10367.bugfix
Normal file
|
@ -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…
Reference in a new issue