Explorar o código

Actually treat this as static content, not random Resources.

Kegan Dougal %!s(int64=9) %!d(string=hai) anos
pai
achega
0696dfd94b

+ 6 - 2
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.")

+ 0 - 8
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)

+ 0 - 21
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)

+ 1 - 0
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',