summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/backup_account_resource.py
diff options
context:
space:
mode:
authorKali Kaneko <kali@leap.se>2017-07-25 11:40:11 -0400
committerKali Kaneko <kali@leap.se>2017-07-25 11:40:29 -0400
commit91e4481c450eb7eb928debc1cb7fa59bdb63dd7b (patch)
tree8fd7e6e77b6df669c33d96b7edad6db3cbe14dfe /service/pixelated/resources/backup_account_resource.py
parente4f755309d4cf5cfb6b0bcc62ed73d6070956ab5 (diff)
[pkg] packaging and path changes
- move all the pixelated python package under src/ - move the pixelated_www package under the leap namespace - allow to set globally the static folder - add hours and minutes to the timestamp in package version, to allow for several releases a day.
Diffstat (limited to 'service/pixelated/resources/backup_account_resource.py')
-rw-r--r--service/pixelated/resources/backup_account_resource.py79
1 files changed, 0 insertions, 79 deletions
diff --git a/service/pixelated/resources/backup_account_resource.py b/service/pixelated/resources/backup_account_resource.py
deleted file mode 100644
index 94129122..00000000
--- a/service/pixelated/resources/backup_account_resource.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Copyright (c) 2017 ThoughtWorks, Inc.
-#
-# Pixelated is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Pixelated is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with Pixelated. If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import json
-
-from twisted.python.filepath import FilePath
-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
-from pixelated.support.language import parse_accept_language
-
-
-class BackupAccountPage(Element):
- loader = XMLFile(FilePath(os.path.join(get_protected_static_folder(), 'backup_account.html')))
-
- def __init__(self):
- super(BackupAccountPage, self).__init__()
-
-
-class BackupAccountResource(BaseResource):
- isLeaf = True
-
- 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)
- return self._render_template(request)
-
- def _render_template(self, request):
- site = BackupAccountPage()
- return renderElement(request, site)
-
- def render_POST(self, request):
- account_recovery = AccountRecovery(
- self._authenticator.bonafide_session,
- self.soledad(request),
- self._service(request, '_leap_session').smtp_config,
- self._get_backup_email(request),
- self._leap_provider.server_name,
- language=self._get_language(request))
-
- def update_response(response):
- request.setResponseCode(NO_CONTENT)
- request.finish()
-
- def error_response(response):
- request.setResponseCode(INTERNAL_SERVER_ERROR)
- request.finish()
-
- d = account_recovery.update_recovery_code()
- d.addCallbacks(update_response, error_response)
- return NOT_DONE_YET
-
- def _get_backup_email(self, request):
- return json.loads(request.content.getvalue()).get('backupEmail')
-
- def _get_language(self, request):
- return parse_accept_language(request.getAllHeaders())