summary refs log tree commit diff
path: root/synapse/handlers
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2016-03-14 16:53:53 +0000
committerErik Johnston <erik@matrix.org>2016-03-14 16:53:53 +0000
commit6b1e9b8dfecb8cd1e87cf0d2857735f27797649d (patch)
treefba4b3fd65c8a3a133de3611ba024bc0bea682d1 /synapse/handlers
parentReturn list, not generator. (diff)
parentAdd config to create guest account on 3pid invite (diff)
downloadsynapse-6b1e9b8dfecb8cd1e87cf0d2857735f27797649d.tar.xz
Merge pull request #645 from matrix-org/erikj/3pid_guest_config
Add config to create guest account on 3pid invite
Diffstat (limited to 'synapse/handlers')
-rw-r--r--synapse/handlers/room.py57
1 files changed, 32 insertions, 25 deletions
diff --git a/synapse/handlers/room.py b/synapse/handlers/room.py
index 57113ae4a5..051468989f 100644
--- a/synapse/handlers/room.py
+++ b/synapse/handlers/room.py
@@ -877,36 +877,43 @@ class RoomMemberHandler(BaseHandler):
                 user.
         """
 
-        registration_handler = self.hs.get_handlers().registration_handler
-        guest_access_token = yield registration_handler.guest_access_token_for(
-            medium=medium,
-            address=address,
-            inviter_user_id=inviter_user_id,
-        )
-
-        guest_user_info = yield self.hs.get_auth().get_user_by_access_token(
-            guest_access_token
-        )
-
         is_url = "%s%s/_matrix/identity/api/v1/store-invite" % (
             id_server_scheme, id_server,
         )
+
+        invite_config = {
+            "medium": medium,
+            "address": address,
+            "room_id": room_id,
+            "room_alias": room_alias,
+            "room_avatar_url": room_avatar_url,
+            "room_join_rules": room_join_rules,
+            "room_name": room_name,
+            "sender": inviter_user_id,
+            "sender_display_name": inviter_display_name,
+            "sender_avatar_url": inviter_avatar_url,
+        }
+
+        if self.hs.config.invite_3pid_guest:
+            registration_handler = self.hs.get_handlers().registration_handler
+            guest_access_token = yield registration_handler.guest_access_token_for(
+                medium=medium,
+                address=address,
+                inviter_user_id=inviter_user_id,
+            )
+
+            guest_user_info = yield self.hs.get_auth().get_user_by_access_token(
+                guest_access_token
+            )
+
+            invite_config.update({
+                "guest_access_token": guest_access_token,
+                "guest_user_id": guest_user_info["user"].to_string(),
+            })
+
         data = yield self.hs.get_simple_http_client().post_urlencoded_get_json(
             is_url,
-            {
-                "medium": medium,
-                "address": address,
-                "room_id": room_id,
-                "room_alias": room_alias,
-                "room_avatar_url": room_avatar_url,
-                "room_join_rules": room_join_rules,
-                "room_name": room_name,
-                "sender": inviter_user_id,
-                "sender_display_name": inviter_display_name,
-                "sender_avatar_url": inviter_avatar_url,
-                "guest_user_id": guest_user_info["user"].to_string(),
-                "guest_access_token": guest_access_token,
-            }
+            invite_config
         )
         # TODO: Check for success
         token = data["token"]