summary refs log tree commit diff
path: root/synapse/rest
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2020-08-26 12:05:36 -0400
committerGitHub <noreply@github.com>2020-08-26 12:05:36 -0400
commit6fe12c9512aa480a17d477c46f748a1b63beb539 (patch)
treee4562803d0d4baeca764089b827333420bc0ea94 /synapse/rest
parentRemove unused parameter from, and add safeguard in, get_room_data (#8174) (diff)
downloadsynapse-6fe12c9512aa480a17d477c46f748a1b63beb539.tar.xz
Do not propagate typing notifications from shadow-banned users. (#8176)
Diffstat (limited to 'synapse/rest')
-rw-r--r--synapse/rest/client/v1/room.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/synapse/rest/client/v1/room.py b/synapse/rest/client/v1/room.py
index 88245fc177..84baf3d59b 100644
--- a/synapse/rest/client/v1/room.py
+++ b/synapse/rest/client/v1/room.py
@@ -868,17 +868,21 @@ class RoomTypingRestServlet(RestServlet):
         # Limit timeout to stop people from setting silly typing timeouts.
         timeout = min(content.get("timeout", 30000), 120000)
 
-        if content["typing"]:
-            await self.typing_handler.started_typing(
-                target_user=target_user,
-                auth_user=requester.user,
-                room_id=room_id,
-                timeout=timeout,
-            )
-        else:
-            await self.typing_handler.stopped_typing(
-                target_user=target_user, auth_user=requester.user, room_id=room_id
-            )
+        try:
+            if content["typing"]:
+                await self.typing_handler.started_typing(
+                    target_user=target_user,
+                    requester=requester,
+                    room_id=room_id,
+                    timeout=timeout,
+                )
+            else:
+                await self.typing_handler.stopped_typing(
+                    target_user=target_user, requester=requester, room_id=room_id
+                )
+        except ShadowBanError:
+            # Pretend this worked without error.
+            pass
 
         return 200, {}