summaryrefslogtreecommitdiff
path: root/service/pixelated
diff options
context:
space:
mode:
authorDenis Costa <deniscostadsc@gmail.com>2017-04-13 16:43:12 -0300
committerGitHub <noreply@github.com>2017-04-13 16:43:12 -0300
commit1fcb0c8fb399647bf86ef1b7c6771b3a29f67aa9 (patch)
tree57afe993d19006c223c767d37acc4cd4b9426581 /service/pixelated
parent9203d8e62dd5bd3c9456629e9b336a0b89fbd502 (diff)
parentec00906375cd35220ee694264dce9c4ba5cdbcc9 (diff)
Merge pull request #1052 from pixelated/email-recovery-code
[#927] Email recovery code
Diffstat (limited to 'service/pixelated')
-rw-r--r--service/pixelated/account_recovery.py12
-rw-r--r--service/pixelated/resources/backup_account_resource.py15
-rw-r--r--service/pixelated/resources/root_resource.py2
3 files changed, 18 insertions, 11 deletions
diff --git a/service/pixelated/account_recovery.py b/service/pixelated/account_recovery.py
index c0a18792..2208faf5 100644
--- a/service/pixelated/account_recovery.py
+++ b/service/pixelated/account_recovery.py
@@ -25,14 +25,17 @@ log = Logger()
class AccountRecovery(object):
- def __init__(self, session, soledad, smtp_config, backup_email):
+ def __init__(self, session, soledad, smtp_config, backup_email, domain):
self._bonafide_session = session
self._soledad = soledad
self._smtp_config = smtp_config
self._backup_email = backup_email
+ self._domain = domain
@inlineCallbacks
def update_recovery_code(self):
+ log.info('Updating user\'s recovery code')
+
try:
code = self._soledad.create_recovery_code()
response = yield self._bonafide_session.update_recovery_code(code)
@@ -47,15 +50,18 @@ class AccountRecovery(object):
@inlineCallbacks
def _send_mail(self, code, backup_email):
+ log.info('Sending mail containing the user\'s recovery code')
+
+ sender = 'team@{}'.format(self._domain)
msg = MIMEText('Your code %s' % code)
msg['Subject'] = 'Recovery Code'
- msg['From'] = 'team@pixelated-project.org'
+ msg['From'] = sender
msg['To'] = backup_email
try:
send_mail_result = yield smtp.sendmail(
str(self._smtp_config.remote_smtp_host),
- 'team@pixelated-project.org',
+ sender,
[backup_email],
msg.as_string())
returnValue(send_mail_result)
diff --git a/service/pixelated/resources/backup_account_resource.py b/service/pixelated/resources/backup_account_resource.py
index f51ac2ec..ec3e9dee 100644
--- a/service/pixelated/resources/backup_account_resource.py
+++ b/service/pixelated/resources/backup_account_resource.py
@@ -17,16 +17,15 @@
import os
import json
-from xml.sax import SAXParseException
-
-from pixelated.resources import BaseResource
from twisted.python.filepath import FilePath
-from pixelated.resources import get_protected_static_folder
-from pixelated.account_recovery import AccountRecovery
from twisted.web.http import OK, NO_CONTENT, INTERNAL_SERVER_ERROR
from twisted.web.server import NOT_DONE_YET
from twisted.web.template import Element, XMLFile, renderElement
+from pixelated.resources import BaseResource
+from pixelated.resources import get_protected_static_folder
+from pixelated.account_recovery import AccountRecovery
+
class BackupAccountPage(Element):
loader = XMLFile(FilePath(os.path.join(get_protected_static_folder(), 'backup_account.html')))
@@ -38,9 +37,10 @@ class BackupAccountPage(Element):
class BackupAccountResource(BaseResource):
isLeaf = True
- def __init__(self, services_factory, authenticator):
+ def __init__(self, services_factory, authenticator, leap_provider):
BaseResource.__init__(self, services_factory)
self._authenticator = authenticator
+ self._leap_provider = leap_provider
def render_GET(self, request):
request.setResponseCode(OK)
@@ -55,7 +55,8 @@ class BackupAccountResource(BaseResource):
self._authenticator.bonafide_session,
self.soledad(request),
self._service(request, '_leap_session').smtp_config,
- self._get_backup_email(request))
+ self._get_backup_email(request),
+ self._leap_provider.server_name)
def update_response(response):
request.setResponseCode(NO_CONTENT)
diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py
index d860c422..896bc24b 100644
--- a/service/pixelated/resources/root_resource.py
+++ b/service/pixelated/resources/root_resource.py
@@ -93,7 +93,7 @@ class RootResource(BaseResource):
def initialize(self, provider=None, disclaimer_banner=None, authenticator=None):
self._child_resources.add('assets', File(self._protected_static_folder))
self._child_resources.add(AccountRecoveryResource.BASE_URL, AccountRecoveryResource(self._services_factory))
- self._child_resources.add('backup-account', BackupAccountResource(self._services_factory, authenticator))
+ self._child_resources.add('backup-account', BackupAccountResource(self._services_factory, authenticator, provider))
self._child_resources.add('sandbox', SandboxResource(self._protected_static_folder))
self._child_resources.add('keys', KeysResource(self._services_factory))
self._child_resources.add(AttachmentsResource.BASE_URL, AttachmentsResource(self._services_factory))