From b230d58eaa32a7f115881cffbf5637d98d1e8299 Mon Sep 17 00:00:00 2001 From: sw00 Date: Sun, 25 Oct 2015 18:18:23 -0200 Subject: template user's email address into title this should solve https://github.com/pixelated/pixelated-user-agent/issues/246 needed to inject leap_session into root resource to access user email on request. --- service/pixelated/application.py | 1 + service/pixelated/resources/root_resource.py | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'service/pixelated') diff --git a/service/pixelated/application.py b/service/pixelated/application.py index bca4d5e5..3505f884 100644 --- a/service/pixelated/application.py +++ b/service/pixelated/application.py @@ -47,6 +47,7 @@ def start_user_agent(root_resource, leap_home, leap_session): yield add_welcome_mail(leap_session.mail_store) root_resource.initialize( + leap_session, services.keymanager, services.search_engine, services.mail_service, diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py index e6046eae..fd3c4f92 100644 --- a/service/pixelated/resources/root_resource.py +++ b/service/pixelated/resources/root_resource.py @@ -1,5 +1,6 @@ import os import requests +from string import Template from pixelated.resources.attachments_resource import AttachmentsResource from pixelated.resources.contacts_resource import ContactsResource from pixelated.resources.features_resource import FeaturesResource @@ -22,6 +23,7 @@ class RootResource(Resource): Resource.__init__(self) 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._startup_mode() def _startup_mode(self): @@ -33,7 +35,9 @@ class RootResource(Resource): return self return Resource.getChild(self, path, request) - def initialize(self, keymanager, search_engine, mail_service, draft_service, feedback_service): + def initialize(self, leap_session, keymanager, search_engine, mail_service, draft_service, feedback_service): + self._leap_session = leap_session + self.putChild('assets', File(self._static_folder)) self.putChild('keys', KeysResource(keymanager)) self.putChild('attachment', AttachmentsResource(mail_service)) @@ -67,4 +71,6 @@ class RootResource(Resource): if self._is_starting(): return open(os.path.join(self._startup_assets_folder, 'Interstitial.html')).read() else: - return open(os.path.join(self._static_folder, 'index.html')).read() + email = self._leap_session.account_email() + response = Template(self._html_template).safe_substitute(account_email=email) + return str(response) -- cgit v1.2.3 From e2c83c13ba0ca1edf94b5af0408f17c0d1aa4e95 Mon Sep 17 00:00:00 2001 From: sw00 Date: Mon, 9 Nov 2015 22:39:14 -0200 Subject: use mail_service to inject account_email into root_resource instead of using leap_session, mail_service can be used to get the account email. --- service/pixelated/adapter/services/mail_service.py | 3 ++- service/pixelated/application.py | 1 - service/pixelated/config/services.py | 3 ++- service/pixelated/resources/root_resource.py | 7 +++---- 4 files changed, 7 insertions(+), 7 deletions(-) (limited to 'service/pixelated') diff --git a/service/pixelated/adapter/services/mail_service.py b/service/pixelated/adapter/services/mail_service.py index 44c4c145..53f7615e 100644 --- a/service/pixelated/adapter/services/mail_service.py +++ b/service/pixelated/adapter/services/mail_service.py @@ -23,10 +23,11 @@ import os class MailService(object): - def __init__(self, mail_sender, mail_store, search_engine): + def __init__(self, mail_sender, mail_store, search_engine, account_email): self.mail_store = mail_store self.search_engine = search_engine self.mail_sender = mail_sender + self.account_email = account_email @defer.inlineCallbacks def all_mails(self): diff --git a/service/pixelated/application.py b/service/pixelated/application.py index 3505f884..bca4d5e5 100644 --- a/service/pixelated/application.py +++ b/service/pixelated/application.py @@ -47,7 +47,6 @@ def start_user_agent(root_resource, leap_home, leap_session): yield add_welcome_mail(leap_session.mail_store) root_resource.initialize( - leap_session, services.keymanager, services.search_engine, services.mail_service, diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py index 35429c01..b70bb3f9 100644 --- a/service/pixelated/config/services.py +++ b/service/pixelated/config/services.py @@ -60,7 +60,8 @@ class Services(object): return MailService( pixelated_mail_sender, leap_session.mail_store, - search_engine) + search_engine, + leap_session.account_email()) def setup_draft_service(self, mail_store): return DraftService(mail_store) diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py index fd3c4f92..7bb7b3ad 100644 --- a/service/pixelated/resources/root_resource.py +++ b/service/pixelated/resources/root_resource.py @@ -35,8 +35,8 @@ class RootResource(Resource): return self return Resource.getChild(self, path, request) - def initialize(self, leap_session, keymanager, search_engine, mail_service, draft_service, feedback_service): - self._leap_session = leap_session + def initialize(self, keymanager, search_engine, mail_service, draft_service, feedback_service): + self.account_email = mail_service.account_email self.putChild('assets', File(self._static_folder)) self.putChild('keys', KeysResource(keymanager)) @@ -71,6 +71,5 @@ class RootResource(Resource): if self._is_starting(): return open(os.path.join(self._startup_assets_folder, 'Interstitial.html')).read() else: - email = self._leap_session.account_email() - response = Template(self._html_template).safe_substitute(account_email=email) + response = Template(self._html_template).safe_substitute(account_email=self.account_email) return str(response) -- cgit v1.2.3