diff options
Diffstat (limited to 'server/src/leap/soledad/server/_resource.py')
-rw-r--r-- | server/src/leap/soledad/server/_resource.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/server/src/leap/soledad/server/_resource.py b/server/src/leap/soledad/server/_resource.py index 3e307e44..1c4edade 100644 --- a/server/src/leap/soledad/server/_resource.py +++ b/server/src/leap/soledad/server/_resource.py @@ -22,6 +22,7 @@ from twisted.web.resource import Resource from ._blobs import blobs_resource from ._config import get_config +from ._server_info import ServerInfo from ._wsgi import get_sync_resource @@ -34,26 +35,33 @@ class SoledadResource(Resource): for the Soledad Server. """ - _conf = get_config() - def __init__(self, sync_pool=None): sync_resource = get_sync_resource(sync_pool) - self._blobs_enabled = self._conf['soledad-server']['blobs'] + conf = get_config() + self._blobs_enabled = conf['soledad-server']['blobs'] + server_info = ServerInfo(self._blobs_enabled) self.children = { + '': server_info, 'sync': sync_resource, 'blobs': blobs_resource, + 'sync': sync_resource, } def getChild(self, path, request): """ Decide which child resource to serve based on the given path. """ + # requests to / return server information + if path == '': + return self.children[''] + + # requests to /blobs will serve blobs if enabled if path == 'blobs': if not self._blobs_enabled: msg = 'Blobs feature is disabled in this server.' raise Error(403, message=msg) return self.children['blobs'] - # rewind the path and serve the wsgi sync resource + # other requesta are routed to legacy sync resource request.postpath.insert(0, request.prepath.pop()) return self.children['sync'] |