Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Implement knock feature #6739

Merged
merged 129 commits into from
Jun 9, 2021
Merged

Implement knock feature #6739

merged 129 commits into from
Jun 9, 2021

Commits on Nov 16, 2020

  1. Configuration menu
    Copy the full SHA
    079e995 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f1f5fa7 View commit details
    Browse the repository at this point in the history
  3. Update the event auth rules for knocking

    Hopefully most of these changes are explained through the added comments and error
    messages. The changes are also described conceptually in the MSC:
    https://github.com/Sorunome/matrix-doc/blob/soru/knock/proposals/2403-knock.md#join-rules
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    b81617e View commit details
    Browse the repository at this point in the history
  4. Add CS /_matrix/client/r0/knock/{roomIdOrAlias} endpoint

    We're ditching the usual idea of having two endpoints for each
    membership-related endpoint as per the MSC. Thus knocking only gets the
    more powerful variant (the one that supports room aliases as well as
    IDs. The reason is also optional.
    
    The other small change is just to ensure displaynames get added to the
    content of this particular membership event.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    25a341d View commit details
    Browse the repository at this point in the history
  5. Add room_knock_state_types config option

    This option serves the same purpose as the existing
    room_invite_state_types option, which defines what state events are sent
    over to a user that is invited to a room. This information is necessary
    for the user - who isn't in the room yet - to get some metadata about
    the room in order to display it in a pretty fashion in the user's
    pending-invites list.
    
    It includes information such as the room's name, avatar, topic,
    canonical alias, room encryption state etc. as well as the invite
    membership event which the invited user's homeserver can reference.
    
    This new option is the exact same, but is sent by a homeserver in the
    room to the knocker during the knock process. This option will actually
    be utilised in a later commit.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    66e263b View commit details
    Browse the repository at this point in the history
  6. Federation: make_knock and send_knock implementations

    Most of this is explained in the linked MSC (and don't miss the sequence
    diagram in the MSC comments), but roughly knocking takes inspiration from
    room joins and room invites. This commit is the room join stuff.
    
    First the knocking homeserver POSTs to the make_knock endpoint on
    another homeserver. The other homeserver will send back a knock event
    that is valid for the knocking user and the room that they are knocking
    on. The knocking homeserver will sign the event and send it back, before
    the other homeserver takes that event and then sends it into the room on
    the knocking homeserver's behalf.
    
    It's worth noting that the accepting/rejecting knocks all happen over
    existing room invite/leave flows. A homeserver rescinding its knock as
    well is also just sending a leave.
    
    Once the event has been inserted into the room, the homeserver that's in
    the room will send back a 200 and an empty JSON dict to confirm
    everything went well to the knocker. In a future commit, this dict will
    instead be filled with some stripped state events from the room which
    the knocking homeserver will pass back to the knocking user.
    
    And yes, the logging statements in this commit are intentional. They're
    consistent with the rest of the file :)
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    50998c7 View commit details
    Browse the repository at this point in the history
  7. Send stripped state events back to the knocking homeserver

    Here we finally send the stripped state events back to the knocking
    homeserver, which then ingests and stores those events.
    
    A future commit will actually start sending those events down /sync to
    the relevant user.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    eea7db9 View commit details
    Browse the repository at this point in the history
  8. Extend sync to inform clients about the progress of their knocks

    So we've got federation so that homeservers can communicate knocking
    information between them - but how does that information actually get
    down to the client? The client knows that it knocked successfully from a
    200 in its original request, but what else does it need? This commit
    adds a new "knock" section to /sync (in addition to "invite", "join",
    and "leave") all help give the client the information it needs.
    
    The new "knock" section is used for sending down the stripped state
    events we collected earlier. The client will use these to display the
    room and its metadata in a little "pending knocks" section or similar.
    
    This is all this commit adds. If the user's knock has been accepted or
    rejected, they will receive that information in the "join" or "leave"
    sections of /sync.
    
    Most of this code is just cribbing off the invite and join sync code yet
    again, with some minor differences. For instance, we don't need to
    exclude knock events from sync if the sender is in your ignore list, as
    you are the only ones that can send knocks for yourself.
    
    The structure of the "knock" dict in sync is modeled after "invite", as
    clients also receive stripped state in that. The structure can be viewed
    in the linked MSC.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    41f5490 View commit details
    Browse the repository at this point in the history
  9. Auto-add displaynames to knock events if they're missing

    Tiny commit to just bring knocking up to feature parity.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    8e443dd View commit details
    Browse the repository at this point in the history
  10. Add some handy db methods for knocking

    This just adds some database methods that we'll need to use when
    implementing rescinding of knocks of clients. They are equivalent to
    their invite-related counterparts.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    082f04b View commit details
    Browse the repository at this point in the history
  11. Implement locally rescinding a federated knock

    As mentioned in the MSC, a user can rescind (take back) a knock while it
    is pending by sending a leave event to the room. This will set their
    membership to leave instead of knock.
    
    Now, this functionality already worked before this commit for rooms that
    the homeserver was already in. What didn't work was:
    
    * Rescinding a knock over federation to a room with active homeservers
    * Rescinding a knock over federation to a room with inactive homeservers
    
    This commit addresses the second bullet point, and leaves the first
    bullet point as a TODO (as it is an edge case an not immediately obvious
    how it would be done).
    
    What this commit does is crib off the same functionality as locally
    rejecting an invite. That occurs when we are unable to contact the
    homeserver that originally sent us an invite. Instead an out-of-band
    leave membership event will be generated and sent to clients locally.
    
    The same is happening here. You can mostly ignore the new
    generate_local_out_of_band_membership methods, those are just some
    structural bits to allow us to call that method from RoomMemberHandler.
    
    The real meat of this commit is moving about and adding some logic in
    `update_membership_locked`, specifically for when we're updating a
    user's membership to "leave". There was already some code in there to
    check whether the room to send the leave to was a room the homeserver is
    not currently a part of. In that case, we'd remote reject the knock.
    This commit just extends that to also rescind knocks if the user's
    membership in the room is currently "knock". We skip the remote attempt
    for now and go straight to generating a local leave membership event.
    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    e46ceb1 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    56cde8b View commit details
    Browse the repository at this point in the history
  13. Changelog

    anoadragon453 committed Nov 16, 2020
    Configuration menu
    Copy the full SHA
    8e0ac8c View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2020

  1. Configuration menu
    Copy the full SHA
    392b315 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    665e863 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f08a20b View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f8fa8fa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    aa66525 View commit details
    Browse the repository at this point in the history
  6. context -> room_id

    anoadragon453 committed Nov 23, 2020
    Configuration menu
    Copy the full SHA
    d4960c8 View commit details
    Browse the repository at this point in the history
  7. Remove old TODO

    anoadragon453 committed Nov 23, 2020
    Configuration menu
    Copy the full SHA
    51f6c5d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    98f96ec View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    9560d0a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    e427bd2 View commit details
    Browse the repository at this point in the history
  11. Apply suggestions from code review

    Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
    anoadragon453 and clokep authored Nov 23, 2020
    Configuration menu
    Copy the full SHA
    8cec504 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2020

  1. Fix locally rescinding knocks on worker setups

    Turns out there was some extra boilerplate around replication that is necessary
    to rescind knocks on worker setups. Workers need to call out to the master
    process to help remotely accept/reject invites, and the same is true for
    accepting/rescinding knocks.
    
    This commit adds replication client functions and handlers for remote_knock and
    remote_rescind_knock.
    
    As part of this, I turned generate_local_out_of_band_leave back into a private
    function. It was originally being called by
    RoomMemberHandler.update_membership_locked as it was simply a shortcut to
    generating a local leave event (aka rescinding a knock locally, but not
    informing any other servers about it). This shortcut was temporary while
    actually remote rescinding is left as a TODO. Instead of setting up all the
    boilerplate code for generate_local_out_of_band_leave, only to later replace it
    with remote_rescind_knock (which would call generate_local_out_of_band_leave if
    it failed to rescind a knock remotely), we just set up replication for
    remote_rescind_knock now.
    
    In the future, remote_rescind_knock will do more than just immediately giving
    up and rescinding the knock locally.
    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    162677b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4b36862 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ebc683a View commit details
    Browse the repository at this point in the history
  4. lint

    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    a630222 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a34be45 View commit details
    Browse the repository at this point in the history
  6. Remove knock unstable_features

    Clients can tell if knocking is available by checking for the presence of a room
    version containing knocking in /_matrix/client/r0/capabilities.
    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    9090465 View commit details
    Browse the repository at this point in the history
  7. Optimise retrieving previous invite or knock event during membership …

    …update.
    
    It was pointed out that the method in
    RoomMemberHandler.update_membership_locked for retrieving the previous invite
    or knock event was overly complex. We already knew the ID of the room, yet got
    a list of all rooms that the user has been invited to/knocked on from the
    database. We then filtered that list, and extracted some metadata from it that
    allowed us to get the invite/knock event ID.
    
    This was quite ineffecient, and I've updated both methods to simply get the
    current state of the room given the room ID, extract the latest m.room.member
    event for the user, and check that it has invite/knock membership.
    
    There's still some inefficiency between pulling out the knock event, passing
    the event ID to remote_rescind_knock, to which remote_rescind_knock then
    pulls the associated event out of the database again - however I think this
    is necessary given that we may need to call remote_rescind_knock over
    replication, where passing an event ID is easier than a serialised event.
    It also more closely resembles remote_reject_invite's function signature.
    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    ad929c3 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    42ecc28 View commit details
    Browse the repository at this point in the history
  9. Update endpoint to use unstable prefix

    I assume the same does not need to happen to replication endpoints as they are not
    client or federation facing.
    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    7f65f01 View commit details
    Browse the repository at this point in the history
  10. Update synapse/http/servlet.py

    Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
    anoadragon453 and clokep authored Nov 24, 2020
    Configuration menu
    Copy the full SHA
    a49cd83 View commit details
    Browse the repository at this point in the history
  11. Apply suggestions from code review

    Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
    anoadragon453 and clokep authored Nov 24, 2020
    Configuration menu
    Copy the full SHA
    c097c52 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    9337536 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    ab934b4 View commit details
    Browse the repository at this point in the history
  14. Remove config option room_knock_state_types

    We introduced this option in this PR to mirror room_knock_invite_types, but ended up
    questioning the worth of both, and ultimately decided that neither were very useful.
    
    Context: https://github.com/matrix-org/synapse/pull/6739/files#r527027645 and
    matrix-org#8807
    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    16da425 View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    acdfd4b View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    afe242c View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    7f3c188 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    5d3365e View commit details
    Browse the repository at this point in the history
  19. Add Matrix.org Foundation copyright to synapse/handlers/stats.py

    This file had a minor edit to update the wording.
    anoadragon453 committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    72d16b0 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    3fb055c View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2020

  1. Configuration menu
    Copy the full SHA
    13b8e4a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8e43e63 View commit details
    Browse the repository at this point in the history
  3. Speed up remote invite rejection database call (matrix-org#8815)

    This is another PR that grew out of matrix-org#6739.
    
    The existing code for checking whether a user is currently invited to a room when they want to leave the room looks like the following:
    
    https://github.com/matrix-org/synapse/blob/f737368a26bb9eea401fcc3a5bdd7e0b59e91f09/synapse/handlers/room_member.py#L518-L540
    
    It calls `get_invite_for_local_user_in_room`, which will actually query *all* rooms the user has been invited to, before iterating over them and matching via the room ID. It will then return a tuple of a lot of information which we pull the event ID out of.
    
    I need to do a similar check for knocking, but this code wasn't very efficient. I then tried to write a different implementation using `StateHandler.get_current_state` but this actually didn't work as we haven't *joined* the room yet - we've only been invited to it. That means that only certain tables in Synapse have our desired `invite` membership state. One of those tables is `local_current_membership`.
    
    So I wrote a store method that just queries that table instead
    anoadragon453 committed Nov 25, 2020
    Configuration menu
    Copy the full SHA
    8604861 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2020

  1. Use get_local_current_membership_for_user_in_room for knock code

    Additionally clean up the logic of this invite/knock code a bit, and it was
    originally a little tricky to follow the flow.
    anoadragon453 committed Nov 26, 2020
    Configuration menu
    Copy the full SHA
    280eed3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d2cec48 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    50354ef View commit details
    Browse the repository at this point in the history
  4. Revert "Remove unnecessary arguments from knocking _serialize_payload…

    … functions"
    
    This reverts commit 3fb055c. It was found that
    these arguments are necessary and nice to keep around following a discussion
    in matrix-org#8809.
    anoadragon453 committed Nov 26, 2020
    Configuration menu
    Copy the full SHA
    7c09796 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2020

  1. Configuration menu
    Copy the full SHA
    510da34 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d73ea0c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c1f4b62 View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2020

  1. Configuration menu
    Copy the full SHA
    338861f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0c4bdb0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d394eb9 View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2020

  1. Configuration menu
    Copy the full SHA
    0f62e2d View commit details
    Browse the repository at this point in the history
  2. make sure to include stripped state events for local knocks as well!

    The type change was necessary as DEFAULT_ROOM_STATE_TYPES is actually
    a list of str.
    anoadragon453 committed Dec 1, 2020
    Configuration menu
    Copy the full SHA
    60466b8 View commit details
    Browse the repository at this point in the history
  3. Add unit tests for knocking

    This specifically tests the stripped state events that come down /sync, as
    at the current stage in the MSC the exact types to send are not fixed.
    
    There's also a tiny type fix included in a nearby test.
    anoadragon453 committed Dec 1, 2020
    Configuration menu
    Copy the full SHA
    aaa6c88 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2020

  1. Configuration menu
    Copy the full SHA
    fa66189 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    220ec91 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    328a274 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2020

  1. Remove unnecessary parameter

    shorthand being on has no effect if the path starts with /_matrix
    anoadragon453 committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    06aa174 View commit details
    Browse the repository at this point in the history
  2. Add tests for federated stripped room state. test only some room stat…

    …e included
    
    The changes included here cover a few things:
    
    * A new testcase was added that performs federated make_knock and send_knock calls,
      checking that all expected stripped room state is included in the response to
      send_knock.
    * Abstracting the stripped room state checks from SyncKnockTestCase into generic
      functions that have been moved into FederationKnockingTestCase. We then import
      these into SyncKnockTestCase instead.
        * Two functions were created. One that sends the test state into a room, and
          another that takes that test state + the stripped state events received
          while knocking and compares them.
    * The abstracted function for checking state now also checks that not all state
      in the room is given to the knocker. For instance, we probably don't want to
      give widget URLs to someone knocking on a room before we've accepted them!
    
      Thus we include a "secret state event" in the room and check that the knocker
      does not receive it.
    
    When writing the federation tests it took quite a while for me to figure out how
    to get a homeserver to accept calls from another homeserver that didn't exist.
    To do so, I ended up mocking out the event signature and auth checking. These
    checks aren't relavent to this test, and are instead checked by those in
    Complement.
    anoadragon453 committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    8dcc9f8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    51db6d3 View commit details
    Browse the repository at this point in the history
  4. Apply suggestions from code review

    Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
    anoadragon453 and clokep authored Dec 3, 2020
    Configuration menu
    Copy the full SHA
    48bd084 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    65c0478 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    0353288 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c9a5eb7 View commit details
    Browse the repository at this point in the history
  8. Use a mixin instead of passing 'self' in to static methods

    Unfortunately the diff here came out a lot more awful than I would've liked, but
    really we're just moving these two methods into a mixin class and then using that
    instead of the two methods separately.
    
    I also ensured that the top-level SECRET_STATE_EVENT_TYPE was used instead of
    creating an identical variable.
    anoadragon453 committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    a718381 View commit details
    Browse the repository at this point in the history
  9. Move KnockingStrippedStateEventHelperMixin to the top of test_knocking

    Kept this change in a separate commit in order to not make the last commit's
    diff even more confusing.
    anoadragon453 committed Dec 3, 2020
    Configuration menu
    Copy the full SHA
    fb90611 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    c074132 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2020

  1. Configuration menu
    Copy the full SHA
    e1ddbe2 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2020

  1. Configuration menu
    Copy the full SHA
    4047067 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fbcf963 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    abff213 View commit details
    Browse the repository at this point in the history
  4. Remove unnecessary homeserver setup steps

    I thought these were necessary but apparently not so. They were
    originally cribbed from the federation catchip unit tests, and
    apparently not necessary for ours. I suppose because we do not
    hit the federation ratelimit, and the auth bypassing done via
    mocks in the test itself is already sufficient.
    anoadragon453 committed Dec 30, 2020
    Configuration menu
    Copy the full SHA
    5362b49 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    671ed9b View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    69a820e View commit details
    Browse the repository at this point in the history
  7. Fix FederationKnockingTestCase so that it no longer overrides event_a…

    …uth.check for all tests
    
    We needed to disable event_auth checking for this test. However, the method in
    which we were doing so was disabling event_auth.check across all tests. Thus
    after this test ran, other unit tests failed in weird and wonderful ways.
    
    Take a different approach which acts on the homeserver created for this test,
    rather than mocking a file directly.
    anoadragon453 committed Dec 30, 2020
    Configuration menu
    Copy the full SHA
    6bdf465 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    8b4ca64 View commit details
    Browse the repository at this point in the history

Commits on Jan 18, 2021

  1. Configuration menu
    Copy the full SHA
    604a4f9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3dffb77 View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2021

  1. Configuration menu
    Copy the full SHA
    785c7d0 View commit details
    Browse the repository at this point in the history

Commits on Jan 22, 2021

  1. Configuration menu
    Copy the full SHA
    8cf92f6 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2021

  1. Configuration menu
    Copy the full SHA
    5c220df View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    91802c2 View commit details
    Browse the repository at this point in the history

Commits on Feb 17, 2021

  1. Send a ver query parameter for make_knock

    This informs the remote server of the room versions we support. If the room we're trying to
    knock on has a version that is not one of our supported room versions, the remote server
    will return an unsupported room version error.
    
    Noticed in matrix-org/matrix-spec-proposals#2403 (comment)
    anoadragon453 committed Feb 17, 2021
    Configuration menu
    Copy the full SHA
    474a38b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c34de4c View commit details
    Browse the repository at this point in the history
  3. Lint with black==20.8b1

    anoadragon453 committed Feb 17, 2021
    Configuration menu
    Copy the full SHA
    09e444e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1475f2b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4250f50 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    c05b150 View commit details
    Browse the repository at this point in the history

Commits on Feb 26, 2021

  1. Configuration menu
    Copy the full SHA
    b055a30 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    44b5026 View commit details
    Browse the repository at this point in the history

Commits on Mar 29, 2021

  1. Configuration menu
    Copy the full SHA
    5c6aee7 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2021

  1. Configuration menu
    Copy the full SHA
    d778460 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    37a674d View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6c72538 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    024230c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e7f250a View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2021

  1. Configuration menu
    Copy the full SHA
    e23cdf7 View commit details
    Browse the repository at this point in the history

Commits on Jun 4, 2021

  1. Configuration menu
    Copy the full SHA
    44ce919 View commit details
    Browse the repository at this point in the history
  2. Add m.room.create as an expected event type to stripped state

    We added m.room.create as one of the state event types to return by default in
    matrix-org#9448 in order to allow inspecting
    the 'type' of a room (which is stored in the create event) without first needing
    to join a room.
    anoadragon453 committed Jun 4, 2021
    Configuration menu
    Copy the full SHA
    c838fd4 View commit details
    Browse the repository at this point in the history

Commits on Jun 7, 2021

  1. Configuration menu
    Copy the full SHA
    cfccaf4 View commit details
    Browse the repository at this point in the history
  2. Fix test after do_auth function rename

    do_auth was renamed to _check_event_auth in matrix-org#9800.
    anoadragon453 committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    98367ba View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2021

  1. Apply suggestions from code review

    Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
    anoadragon453 and clokep authored Jun 8, 2021
    Configuration menu
    Copy the full SHA
    ebcdd0d View commit details
    Browse the repository at this point in the history
  2. Apply suggestions from code review

    I blame the above mess on the github outage o:)
    
    Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
    anoadragon453 and clokep authored Jun 8, 2021
    Configuration menu
    Copy the full SHA
    662fe98 View commit details
    Browse the repository at this point in the history
  3. send_knock_v2 -> v1

    anoadragon453 committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    7932671 View commit details
    Browse the repository at this point in the history
  4. fix type hint

    anoadragon453 committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    5d27f53 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4d1462f View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    56d84e5 View commit details
    Browse the repository at this point in the history
  7. Remove room_stats_historical database alteration

    room_stats_historical doesn't appear to be ever read from. See matrix-org#9602.
    anoadragon453 committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    2fa4274 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    3d1b132 View commit details
    Browse the repository at this point in the history
  9. check_sigs_and_hashes -> check_sigs_and_hash

    another renamed method
    anoadragon453 committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    8f24db5 View commit details
    Browse the repository at this point in the history
  10. lint

    anoadragon453 committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    01457e6 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    1576f23 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    813fc24 View commit details
    Browse the repository at this point in the history
  13. Room version checks for knocking-related actions

    This commit adds checks for the room version in:
    
    * Building client and federation servlets
    * Building membership events
    * Attempting to knock on a room over federation
    * In the event auth rules themselves
    anoadragon453 committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    bea438e View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2021

  1. Configuration menu
    Copy the full SHA
    277e952 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2f73e32 View commit details
    Browse the repository at this point in the history
  3. Remove try/except on KeyError for query parameter parsing

    This was no longer needed after switching to parse_strings_from_args.
    anoadragon453 committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    1db05ad View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9c034ef View commit details
    Browse the repository at this point in the history
  5. lint

    anoadragon453 committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    a2bd345 View commit details
    Browse the repository at this point in the history
  6. Add knocked_members column back to room_stats_historical

    This table's usefulness is debatable (see matrix-org#9602), but is currently used by both
    the codebase and tests. Thus for now I'm leaving it in, but it may well
    be removed in a future PR.
    anoadragon453 committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    0294248 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    c5788b8 View commit details
    Browse the repository at this point in the history
  8. Ensure we check that we currently support the desired room version du…

    …ring make_knock
    
    We may not if we create a knock room when knocking is enabled, then
    disabling knocking. We don't want to allow knocks in that case.
    anoadragon453 committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    15c23c4 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    da85886 View commit details
    Browse the repository at this point in the history