summary refs log tree commit diff
path: root/synapse/handlers/room.py
diff options
context:
space:
mode:
authorMark Haines <mjark@negativecurvature.net>2015-12-02 13:17:15 +0000
committerMark Haines <mjark@negativecurvature.net>2015-12-02 13:17:15 +0000
commit58d092776717f0c84626e3925dc10b78b5b189ae (patch)
tree5c254b76f2e913d0ea824e9e3f1fa74e94509f49 /synapse/handlers/room.py
parentMerge pull request #413 from matrix-org/markjh/reuse_http_client (diff)
parentUse the context returned by _handle_new_event (diff)
downloadsynapse-58d092776717f0c84626e3925dc10b78b5b189ae.tar.xz
Merge pull request #410 from matrix-org/markjh/edu_frequency
Only fire user_joined_room if the user has actually joined.
Diffstat (limited to 'synapse/handlers/room.py')
-rw-r--r--synapse/handlers/room.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 38bf2ef711..116a998c42 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -525,8 +525,13 @@ class RoomMemberHandler(BaseHandler):
                 do_auth=do_auth,
             )
 
-        user = UserID.from_string(event.user_id)
-        yield user_joined_room(self.distributor, user, room_id)
+        prev_state = context.current_state.get((event.type, event.state_key))
+        if not prev_state or prev_state.membership != Membership.JOIN:
+            # Only fire user_joined_room if the user has acutally joined the
+            # room. Don't bother if the user is just changing their profile
+            # info.
+            user = UserID.from_string(event.user_id)
+            yield user_joined_room(self.distributor, user, room_id)
 
     @defer.inlineCallbacks
     def get_inviter(self, event):