summaryrefslogtreecommitdiff
path: root/server/src/leap/soledad
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/leap/soledad')
-rw-r--r--server/src/leap/soledad/server/_resource.py17
-rw-r--r--server/src/leap/soledad/server/auth.py10
2 files changed, 20 insertions, 7 deletions
diff --git a/server/src/leap/soledad/server/_resource.py b/server/src/leap/soledad/server/_resource.py
index fec290a2..156e18aa 100644
--- a/server/src/leap/soledad/server/_resource.py
+++ b/server/src/leap/soledad/server/_resource.py
@@ -33,17 +33,24 @@ class SoledadResource(Resource):
for the Soledad Server.
"""
- def __init__(self, conf, sync_pool=None):
- Resource.__init__(self)
+ def __init__(self, enable_blobs=False, sync_pool=None):
+ """
+ Initialize the Soledad resource.
+
+ :param enable_blobs: Whether the blobs feature should be enabled.
+ :type enable_blobs: bool
- blobs_enabled = conf['soledad-server']['blobs']
+ :param sync_pool: A pool to pass to the WSGI sync resource.
+ :type sync_pool: twisted.python.threadpool.ThreadPool
+ """
+ Resource.__init__(self)
# requests to / return server information
- server_info = ServerInfo(blobs_enabled)
+ server_info = ServerInfo(enable_blobs)
self.putChild('', server_info)
# requests to /blobs will serve blobs if enabled
- if blobs_enabled:
+ if enable_blobs:
self.putChild('blobs', blobs_resource)
# other requests are routed to legacy sync resource
diff --git a/server/src/leap/soledad/server/auth.py b/server/src/leap/soledad/server/auth.py
index d7ccdeb9..0ec890ca 100644
--- a/server/src/leap/soledad/server/auth.py
+++ b/server/src/leap/soledad/server/auth.py
@@ -42,12 +42,18 @@ from ._config import get_config
@implementer(IRealm)
class SoledadRealm(object):
- def __init__(self, sync_pool=None):
+ def __init__(self, conf=None, sync_pool=None):
+ if not conf:
+ conf = get_config()
+ self._conf = conf
self._sync_pool = sync_pool
def requestAvatar(self, avatarId, mind, *interfaces):
if IResource in interfaces:
- resource = SoledadResource(sync_pool=self._sync_pool)
+ enable_blobs = self._conf['soledad-server']['blobs']
+ resource = SoledadResource(
+ enable_blobs=enable_blobs,
+ sync_pool=self._sync_pool)
return (IResource, resource, lambda: None)
raise NotImplementedError()