From b14833fbb56bcd5bff0750c16fd9214009b955be Mon Sep 17 00:00:00 2001 From: Zara Gebru Date: Fri, 2 Dec 2016 15:25:23 +0100 Subject: [refactor] move app dir into public dir --- service/pixelated/application.py | 14 ++++++++++++-- service/pixelated/resources/inbox_resource.py | 2 +- service/pixelated/resources/login_resource.py | 4 ++-- service/pixelated/resources/root_resource.py | 17 ++++------------- 4 files changed, 19 insertions(+), 18 deletions(-) (limited to 'service/pixelated') diff --git a/service/pixelated/application.py b/service/pixelated/application.py index 9f33cb82..0c2383dd 100644 --- a/service/pixelated/application.py +++ b/service/pixelated/application.py @@ -88,12 +88,22 @@ def _create_service_factory(args): return ServicesFactory(UserAgentMode(is_single_user=False)) +def get_templates_folder(): + return os.path.join(os.path.dirname(os.path.abspath(__file__)), "assets") + + +def get_static_folder(): + # TODO: make sure sandbox keeps working + # TODO: make sure this works for packaging + return os.path.abspath(os.path.join(os.path.dirname(os.path.abspath(__file__)), "..", "..", "web-ui", "public")) + + def initialize(): log.info('Starting the Pixelated user agent') 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, templates_folder=get_templates_folder(), static_folder=get_static_folder()) def start(): start_async = _start_mode(args, resource, services_factory) @@ -154,7 +164,7 @@ 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) - anonymous_resource = RootResource(services_factory, public=True) + anonymous_resource = RootResource(services_factory, templates_folder=get_templates_folder(), static_folder=get_static_folder(), public=True) realm = PixelatedRealm(root_resource, anonymous_resource) _portal = portal.Portal(realm, [session_checker, AllowAnonymousAccess()]) diff --git a/service/pixelated/resources/inbox_resource.py b/service/pixelated/resources/inbox_resource.py index 426de5cc..d9ba86a5 100644 --- a/service/pixelated/resources/inbox_resource.py +++ b/service/pixelated/resources/inbox_resource.py @@ -46,7 +46,7 @@ class InboxResource(BaseResource): def _get_not_quite_the_templates_folder(self): path = os.path.dirname(os.path.abspath(pixelated.__file__)) - return os.path.join(path, '..', '..', 'web-ui', 'app') + return os.path.join(path, '..', '..', 'web-ui', 'public') def _get_templates_folder(self): path = os.path.dirname(os.path.abspath(pixelated.__file__)) diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index 7d61ddce..6300efdb 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -51,11 +51,11 @@ def _get_public_folder(): def _get_static_folder(): - static_folder = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..", "web-ui", "app")) + static_folder = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..", "web-ui", "public")) # this is a workaround for packaging if not os.path.exists(static_folder): static_folder = os.path.abspath( - os.path.join(os.path.abspath(__file__), "..", "..", "..", "..", "web-ui", "app")) + os.path.join(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 diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py index 1d32935b..375f27f6 100644 --- a/service/pixelated/resources/root_resource.py +++ b/service/pixelated/resources/root_resource.py @@ -44,13 +44,13 @@ logger = Logger() class RootResource(BaseResource): - def __init__(self, services_factory, public=False): + def __init__(self, services_factory, templates_folder, static_folder, public=False): BaseResource.__init__(self, services_factory) self._public = public self._assets_folder = self._get_assets_folder() self._startup_assets_folder = self._get_startup_folder() - self._static_folder = self._get_static_folder() - self._html_template = open(os.path.join(self._static_folder, 'index.html')).read() + self._static_folder = static_folder + self._html_template = open(os.path.join(templates_folder, 'index.html')).read() self._services_factory = services_factory with open(os.path.join(self._startup_assets_folder, 'Interstitial.html')) as f: self.interstitial = f.read() @@ -61,6 +61,7 @@ class RootResource(BaseResource): def _startup_mode(self): self.putChildProtected('assets', File(self._assets_folder)) self.putChildPublic('startup-assets', File(self._startup_assets_folder)) + self.putChildPublic('static', File(self._static_folder)) self._mode = MODE_STARTUP logger.debug('Root in STARTUP mode. %s' % self) @@ -128,13 +129,3 @@ class RootResource(BaseResource): def _get_startup_folder(self): path = os.path.dirname(os.path.abspath(__file__)) return os.path.join(path, '..', 'assets') - - def _get_static_folder(self): - static_folder = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..", "web-ui", "app")) - # this is a workaround for packaging - if not os.path.exists(static_folder): - static_folder = os.path.abspath( - os.path.join(os.path.abspath(__file__), "..", "..", "..", "..", "web-ui", "app")) - if not os.path.exists(static_folder): - static_folder = os.path.join('/', 'usr', 'share', 'pixelated-user-agent') - return static_folder -- cgit v1.2.3