Don't generate room membership messages. Include previous state of in membership messages.

This commit is contained in:
Erik Johnston 2014-08-20 11:50:16 +01:00
parent 2ffb075772
commit 849627b82e
2 changed files with 16 additions and 8 deletions

View File

@ -506,18 +506,21 @@ class RoomMemberHandler(BaseHandler):
SynapseError if there was a problem changing the membership.
"""
# broadcast_msg = False
broadcast_msg = False
prev_state = yield self.store.get_room_member(
event.target_user_id, event.room_id
)
if prev_state and prev_state.membership == event.membership:
# treat this event as a NOOP.
if do_auth: # This is mainly to fix a unit test.
yield self.auth.check(event, raises=True)
defer.returnValue({})
return
if prev_state:
event.content["prev"] = prev_state.membership
# if prev_state and prev_state.membership == event.membership:
# # treat this event as a NOOP.
# if do_auth: # This is mainly to fix a unit test.
# yield self.auth.check(event, raises=True)
# defer.returnValue({})
# return
room_id = event.room_id

View File

@ -794,7 +794,12 @@ class RoomMemberStateTestCase(RestTestCase):
(code, response) = yield self.mock_resource.trigger("GET", path, None)
self.assertEquals(200, code, msg=str(response))
self.assertEquals(json.loads(content), response)
expected_response = {
"membership": Membership.JOIN,
"prev": Membership.JOIN,
}
self.assertEquals(expected_response, response)
@defer.inlineCallbacks
def test_rooms_members_other(self):