Malte E 3 жил өмнө
parent
commit
08ed1ab3fd

+ 3 - 6
mautrix_signal/matrix.py

@@ -196,15 +196,12 @@ class MatrixHandler(BaseMatrixHandler):
         ):
             return
 
-        portal = await po.Portal.get_by_mxid(evt.room_id)
-        if not portal:
-            return
-
         user = await u.User.get_by_mxid(evt.sender)
-        if not await user.is_logged_in() and portal.has_relay:
-            user = portal.relay_user_id
         if not user:
             return
+        portal = await po.Portal.get_by_mxid(evt.room_id)
+        if not portal:
+            return
 
         if evt.type == EventType.ROOM_NAME:
             await portal.handle_matrix_name(user, evt.content.name)

+ 6 - 0
mautrix_signal/portal.py

@@ -824,6 +824,10 @@ class Portal(DBPortal, BasePortal):
         old_users = prev_content.users if prev_content else None
         new_users = levels.users
         changes = {}
+        sender, is_relay = await self.get_relay_sender(sender, "power level change")
+        if not sender:
+            return
+
         if not old_users:
             changes = new_users
         else:
@@ -861,6 +865,7 @@ class Portal(DBPortal, BasePortal):
                     await self._update_power_levels(
                         await self.signal.get_group(sender.username, self.chat_id)
                     )
+                    return
         if not prev_content or levels.invite != prev_content.invite:
             try:
                 update_meta = await self.signal.update_group(
@@ -882,6 +887,7 @@ class Portal(DBPortal, BasePortal):
                 await self._update_power_levels(
                     await self.signal.get_group(sender.username, self.chat_id)
                 )
+                return
         if not prev_content or levels.state_default != prev_content.state_default:
             try:
                 update_meta = await self.signal.update_group(