Bridge bans to Telegram. Fixes #303

This commit is contained in:
Tulir Asokan
2019-09-22 22:51:46 +03:00
parent 835175aa36
commit d5470de8fd
4 changed files with 46 additions and 16 deletions
+24
View File
@@ -188,6 +188,30 @@ class MatrixHandler(BaseMatrixHandler):
else:
await portal.leave_matrix(user, event_id)
async def handle_ban(self, room_id: RoomID, user_id: UserID, banned_by: UserID, reason: str,
event_id: EventID) -> None:
self.log.debug(f"{user_id} was banned from {room_id} by {banned_by} for {reason}")
sender = u.User.get_by_mxid(banned_by, create=False)
if not sender:
return
await sender.ensure_started()
portal = po.Portal.get_by_mxid(room_id)
if not portal:
return
puppet = pu.Puppet.get_by_mxid(user_id)
if puppet:
await portal.ban_matrix(puppet, sender)
return
user = u.User.get_by_mxid(user_id, create=False)
if not user:
return
await user.ensure_started()
await portal.ban_matrix(user, sender)
@staticmethod
async def allow_message(user: 'u.User') -> bool:
return user.relaybot_whitelisted