summary refs log tree commit diff
diff options
context:
space:
mode:
authorKegan Dougal <kegan@matrix.org>2015-02-23 15:35:09 +0000
committerKegan Dougal <kegan@matrix.org>2015-02-23 15:35:09 +0000
commit0696dfd94b5d32679009368508d26ae1a6630994 (patch)
treeb51868af754c23165730550b7e1af22e4b1064c3
parentAdd RegisterFallbackResource to /_matrix/static/client/register (diff)
downloadsynapse-0696dfd94b5d32679009368508d26ae1a6630994.tar.xz
Actually treat this as static content, not random Resources.
-rwxr-xr-xsynapse/app/homeserver.py8
-rw-r--r--synapse/rest/client/v1/__init__.py8
-rw-r--r--synapse/rest/client/v1/register.py21
-rw-r--r--synapse/server.py1
4 files changed, 7 insertions, 31 deletions
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 137293bd69..688bf8d967 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -36,7 +36,8 @@ from synapse.http.server_key_resource import LocalKey
 from synapse.http.matrixfederationclient import MatrixFederationHttpClient
 from synapse.api.urls import (
     CLIENT_PREFIX, FEDERATION_PREFIX, WEB_CLIENT_PREFIX, CONTENT_REPO_PREFIX,
-    SERVER_KEY_PREFIX, MEDIA_PREFIX, CLIENT_V2_ALPHA_PREFIX, APP_SERVICE_PREFIX
+    SERVER_KEY_PREFIX, MEDIA_PREFIX, CLIENT_V2_ALPHA_PREFIX, APP_SERVICE_PREFIX,
+    STATIC_PREFIX
 )
 from synapse.config.homeserver import HomeServerConfig
 from synapse.crypto import context_factory
@@ -81,6 +82,9 @@ class SynapseHomeServer(HomeServer):
         webclient_path = os.path.join(syweb_path, "webclient")
         return File(webclient_path)  # TODO configurable?
 
+    def build_resource_for_static_content(self):
+        return File("static")
+
     def build_resource_for_content_repo(self):
         return ContentRepoResource(
             self, self.upload_dir, self.auth, self.content_addr
@@ -124,8 +128,8 @@ class SynapseHomeServer(HomeServer):
             (SERVER_KEY_PREFIX, self.get_resource_for_server_key()),
             (MEDIA_PREFIX, self.get_resource_for_media_repository()),
             (APP_SERVICE_PREFIX, self.get_resource_for_app_services()),
+            (STATIC_PREFIX, self.get_resource_for_static_content())
         ]
-        desired_tree += self.get_resource_for_client().get_extra_resources(self)
 
         if web_client:
             logger.info("Adding the web client.")
diff --git a/synapse/rest/client/v1/__init__.py b/synapse/rest/client/v1/__init__.py
index 1ebdeadca5..21876b3487 100644
--- a/synapse/rest/client/v1/__init__.py
+++ b/synapse/rest/client/v1/__init__.py
@@ -28,14 +28,6 @@ class ClientV1RestResource(JsonResource):
         JsonResource.__init__(self, hs)
         self.register_servlets(self, hs)
 
-    def get_extra_resources(self, hs):
-        # some parts of client v1 need to produce HTML as the output (e.g.
-        # fallback pages) but we can only produce JSON output. In an effort to
-        # keep similar logic close together, we'll call through to any servlet
-        # which requires HTML output.
-        register_resources = register.get_prefixes_and_resources(hs)
-        return register_resources
-
     @staticmethod
     def register_servlets(client_resource, hs):
         room.register_servlets(hs, client_resource)
diff --git a/synapse/rest/client/v1/register.py b/synapse/rest/client/v1/register.py
index eee567a583..f5acfb945f 100644
--- a/synapse/rest/client/v1/register.py
+++ b/synapse/rest/client/v1/register.py
@@ -18,12 +18,10 @@ from twisted.internet import defer
 
 from synapse.api.errors import SynapseError, Codes
 from synapse.api.constants import LoginType
-from synapse.api.urls import STATIC_PREFIX
 from base import ClientV1RestServlet, client_path_pattern
 import synapse.util.stringutils as stringutils
 
 from synapse.util.async import run_on_reactor
-from twisted.web.resource import Resource
 
 from hashlib import sha1
 import hmac
@@ -307,16 +305,6 @@ class RegisterRestServlet(ClientV1RestServlet):
         })
 
 
-class RegisterFallbackResource(Resource):
-
-    def __init__(self, hs):
-        Resource.__init__(self)  # Resource is an old-style class :(
-        self.hs = hs
-
-    def render_GET(self, request):
-        return "NOT_YET_IMPLEMENTED"
-
-
 def _parse_json(request):
     try:
         content = json.loads(request.content.read())
@@ -327,14 +315,5 @@ def _parse_json(request):
         raise SynapseError(400, "Content not JSON.")
 
 
-def get_prefixes_and_resources(hs):
-    return [
-        (
-            STATIC_PREFIX + "/client/register",
-            RegisterFallbackResource(hs)
-        )
-    ]
-
-
 def register_servlets(hs, http_server):
     RegisterRestServlet(hs).register(http_server)
diff --git a/synapse/server.py b/synapse/server.py
index ba2b2593f1..cb8610a1b4 100644
--- a/synapse/server.py
+++ b/synapse/server.py
@@ -73,6 +73,7 @@ class BaseHomeServer(object):
         'resource_for_client',
         'resource_for_client_v2_alpha',
         'resource_for_federation',
+        'resource_for_static_content',
         'resource_for_web_client',
         'resource_for_content_repo',
         'resource_for_server_key',