mirror of
https://mau.dev/maunium/synapse.git
synced 2024-10-01 01:36:05 -04:00
Gracefully handle failing to kick user
This commit is contained in:
parent
6b28890543
commit
72a14860ab
@ -501,34 +501,41 @@ class ShutdownRoomRestServlet(ClientV1RestServlet):
|
|||||||
|
|
||||||
users = yield self.state.get_current_user_in_room(room_id)
|
users = yield self.state.get_current_user_in_room(room_id)
|
||||||
kicked_users = []
|
kicked_users = []
|
||||||
|
failed_to_kick_users = []
|
||||||
for user_id in users:
|
for user_id in users:
|
||||||
if not self.hs.is_mine_id(user_id):
|
if not self.hs.is_mine_id(user_id):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
logger.info("Kicking %r from %r...", user_id, room_id)
|
logger.info("Kicking %r from %r...", user_id, room_id)
|
||||||
|
|
||||||
target_requester = create_requester(user_id)
|
try:
|
||||||
yield self.room_member_handler.update_membership(
|
target_requester = create_requester(user_id)
|
||||||
requester=target_requester,
|
yield self.room_member_handler.update_membership(
|
||||||
target=target_requester.user,
|
requester=target_requester,
|
||||||
room_id=room_id,
|
target=target_requester.user,
|
||||||
action=Membership.LEAVE,
|
room_id=room_id,
|
||||||
content={},
|
action=Membership.LEAVE,
|
||||||
ratelimit=False
|
content={},
|
||||||
)
|
ratelimit=False
|
||||||
|
)
|
||||||
|
|
||||||
yield self.room_member_handler.forget(target_requester.user, room_id)
|
yield self.room_member_handler.forget(target_requester.user, room_id)
|
||||||
|
|
||||||
yield self.room_member_handler.update_membership(
|
yield self.room_member_handler.update_membership(
|
||||||
requester=target_requester,
|
requester=target_requester,
|
||||||
target=target_requester.user,
|
target=target_requester.user,
|
||||||
room_id=new_room_id,
|
room_id=new_room_id,
|
||||||
action=Membership.JOIN,
|
action=Membership.JOIN,
|
||||||
content={},
|
content={},
|
||||||
ratelimit=False
|
ratelimit=False
|
||||||
)
|
)
|
||||||
|
|
||||||
kicked_users.append(user_id)
|
kicked_users.append(user_id)
|
||||||
|
except Exception:
|
||||||
|
logger.exception(
|
||||||
|
"Failed to leave old room and join new room for %r", user_id,
|
||||||
|
)
|
||||||
|
failed_to_kick_users.append(user_id)
|
||||||
|
|
||||||
yield self.event_creation_handler.create_and_send_nonmember_event(
|
yield self.event_creation_handler.create_and_send_nonmember_event(
|
||||||
room_creator_requester,
|
room_creator_requester,
|
||||||
@ -549,6 +556,7 @@ class ShutdownRoomRestServlet(ClientV1RestServlet):
|
|||||||
|
|
||||||
defer.returnValue((200, {
|
defer.returnValue((200, {
|
||||||
"kicked_users": kicked_users,
|
"kicked_users": kicked_users,
|
||||||
|
"failed_to_kick_users": failed_to_kick_users,
|
||||||
"local_aliases": aliases_for_room,
|
"local_aliases": aliases_for_room,
|
||||||
"new_room_id": new_room_id,
|
"new_room_id": new_room_id,
|
||||||
}))
|
}))
|
||||||
|
Loading…
Reference in New Issue
Block a user