Allow deleting messages via relay bot. Fixes #114

This commit is contained in:
Tulir Asokan
2018-04-28 21:52:24 +03:00
parent 8da06c969c
commit 445d997be8
2 changed files with 10 additions and 4 deletions
+9 -4
View File
@@ -198,10 +198,15 @@ class MatrixHandler:
is_portal=portal is not None)
async def handle_redaction(self, room, sender, event_id):
portal = Portal.get_by_mxid(room)
sender = await User.get_by_mxid(sender).ensure_started()
if sender.has_full_access and portal:
await portal.handle_matrix_deletion(sender, event_id)
if not sender.relaybot_whitelisted:
return
portal = Portal.get_by_mxid(room)
if not portal:
return
await portal.handle_matrix_deletion(sender, event_id)
async def handle_power_levels(self, room, sender, new, old):
portal = Portal.get_by_mxid(room)
@@ -244,8 +249,8 @@ class MatrixHandler:
self.log.debug("Received event: %s", evt)
type = evt["type"]
content = evt.get("content", {})
prev_content = evt.get("unsigned", {}).get("prev_content", {})
if type == "m.room.member":
prev_content = evt.get("unsigned", {}).get("prev_content", {})
membership = content.get("membership", "")
prev_membership = prev_content.get("membership", "leave")
if membership == prev_membership:
+1
View File
@@ -743,6 +743,7 @@ class Portal:
pass
async def handle_matrix_deletion(self, deleter, event_id):
deleter = deleter if deleter.logged_in else self.bot
space = self.tgid if self.peer_type == "channel" else deleter.tgid
message = DBMessage.query.filter(DBMessage.mxid == event_id,
DBMessage.tg_space == space,