diff options
author | Luke Barnard <lukebarnard1@users.noreply.github.com> | 2018-04-05 15:57:49 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-05 15:57:49 +0100 |
commit | e089100c6231541c446e37e157dec8feed02d283 (patch) | |
tree | a80dceb2580ab28630055ec627a82a25672b6aa4 /synapse/federation/transport/server.py | |
parent | Merge pull request #3041 from matrix-org/r30_stats (diff) | |
parent | NON NULL -> NOT NULL (diff) | |
download | synapse-e089100c6231541c446e37e157dec8feed02d283.tar.xz |
Merge pull request #3045 from matrix-org/dbkr/group_joinable
Add joinability for groups
Diffstat (limited to 'synapse/federation/transport/server.py')
-rw-r--r-- | synapse/federation/transport/server.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/synapse/federation/transport/server.py b/synapse/federation/transport/server.py index a66a6b0692..3658ca75f3 100644 --- a/synapse/federation/transport/server.py +++ b/synapse/federation/transport/server.py @@ -1,5 +1,6 @@ # -*- coding: utf-8 -*- # Copyright 2014-2016 OpenMarket Ltd +# Copyright 2018 New Vector Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -1124,6 +1125,24 @@ class FederationGroupsBulkPublicisedServlet(BaseFederationServlet): defer.returnValue((200, resp)) +class FederationGroupsSettingJoinPolicyServlet(BaseFederationServlet): + """Sets whether a group is joinable without an invite or knock + """ + PATH = "/groups/(?P<group_id>[^/]*)/settings/m.join_policy$" + + @defer.inlineCallbacks + def on_POST(self, origin, content, query, group_id): + requester_user_id = parse_string_from_args(query, "requester_user_id") + if get_domain_from_id(requester_user_id) != origin: + raise SynapseError(403, "requester_user_id doesn't match origin") + + new_content = yield self.handler.set_group_join_policy( + group_id, requester_user_id, content + ) + + defer.returnValue((200, new_content)) + + FEDERATION_SERVLET_CLASSES = ( FederationSendServlet, FederationPullServlet, @@ -1172,6 +1191,7 @@ GROUP_SERVER_SERVLET_CLASSES = ( FederationGroupsSummaryUsersServlet, FederationGroupsAddRoomsServlet, FederationGroupsAddRoomsConfigServlet, + FederationGroupsSettingJoinPolicyServlet, ) |