summaryrefslogtreecommitdiff
path: root/service/pixelated/application.py
diff options
context:
space:
mode:
Diffstat (limited to 'service/pixelated/application.py')
-rw-r--r--service/pixelated/application.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/service/pixelated/application.py b/service/pixelated/application.py
index 46e5ba85..73095da4 100644
--- a/service/pixelated/application.py
+++ b/service/pixelated/application.py
@@ -37,12 +37,18 @@ from pixelated.config.leap import initialize_leap_single_user, init_monkeypatche
from pixelated.config.services import ServicesFactory, SingleUserServicesFactory
from pixelated.config.site import PixelatedSite
from pixelated.resources.auth import PixelatedRealm, PixelatedAuthSessionWrapper, SessionChecker
-from pixelated.resources.login_resource import LoginResource
from pixelated.resources.root_resource import RootResource
log = Logger()
+def get_static_folder():
+ static_folder = os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "web-ui", "public"))
+ if not os.path.exists(static_folder):
+ static_folder = os.path.join('/', 'usr', 'share', 'pixelated-user-agent')
+ return static_folder
+
+
class UserAgentMode(object):
def __init__(self, is_single_user):
self.is_single_user = is_single_user
@@ -94,7 +100,7 @@ def initialize():
args = arguments.parse_user_agent_args()
logger.init(debug=args.debug)
services_factory = _create_service_factory(args)
- resource = RootResource(services_factory)
+ resource = RootResource(services_factory, static_folder=get_static_folder())
def start():
start_async = _start_mode(args, resource, services_factory)
@@ -155,11 +161,12 @@ def _setup_multi_user(args, root_resource, services_factory):
def set_up_protected_resources(root_resource, provider, services_factory, banner=None, authenticator=None):
session_checker = SessionChecker(services_factory)
- realm = PixelatedRealm()
+ anonymous_resource = RootResource(services_factory, static_folder=get_static_folder(), public=True)
+ realm = PixelatedRealm(root_resource, anonymous_resource)
_portal = portal.Portal(realm, [session_checker, AllowAnonymousAccess()])
- anonymous_resource = LoginResource(services_factory, provider, disclaimer_banner=banner, authenticator=authenticator)
- protected_resource = PixelatedAuthSessionWrapper(_portal, root_resource, anonymous_resource, [])
+ protected_resource = PixelatedAuthSessionWrapper(_portal)
+ anonymous_resource.initialize(provider, disclaimer_banner=banner, authenticator=authenticator)
root_resource.initialize(provider, disclaimer_banner=banner, authenticator=authenticator)
return protected_resource