diff options
author | Anike Arni <anikarni@gmail.com> | 2017-03-15 14:45:51 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-15 14:45:51 -0300 |
commit | 0a7a9c1eacdc1185d40dbabd3d8cd213f9522a96 (patch) | |
tree | 0f559b9d6f3a92e2059b5035b3b5ea1cf60ceb17 /service/pixelated/resources | |
parent | f3737daf1fb3a78a919382b8c682cbf3c480bade (diff) | |
parent | 47f508a2e830a6cf06903d4bf7e771708b4c8c2c (diff) |
Merge pull request #1009 from pixelated/update-recovery-code
[#924] Implements update recovery code through bitmask
Diffstat (limited to 'service/pixelated/resources')
-rw-r--r-- | service/pixelated/resources/backup_account_resource.py | 22 | ||||
-rw-r--r-- | service/pixelated/resources/login_resource.py | 2 | ||||
-rw-r--r-- | service/pixelated/resources/root_resource.py | 2 |
3 files changed, 22 insertions, 4 deletions
diff --git a/service/pixelated/resources/backup_account_resource.py b/service/pixelated/resources/backup_account_resource.py index f1eeee53..0b73bc35 100644 --- a/service/pixelated/resources/backup_account_resource.py +++ b/service/pixelated/resources/backup_account_resource.py @@ -20,7 +20,9 @@ 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 twisted.web.http import OK +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 @@ -34,8 +36,9 @@ class BackupAccountPage(Element): class BackupAccountResource(BaseResource): isLeaf = True - def __init__(self, services_factory): + def __init__(self, services_factory, authenticator): BaseResource.__init__(self, services_factory) + self._authenticator = authenticator def render_GET(self, request): request.setResponseCode(OK) @@ -44,3 +47,18 @@ class BackupAccountResource(BaseResource): def _render_template(self, request): site = BackupAccountPage() return renderElement(request, site) + + def render_POST(self, request): + account_recovery = AccountRecovery(self._authenticator.bonafide_session) + + 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("123") + d.addCallbacks(update_response, error_response) + return NOT_DONE_YET diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index 5adfadf9..3e1200d7 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -86,7 +86,7 @@ class LoginResource(BaseResource): BaseResource.__init__(self, services_factory) self._disclaimer_banner = disclaimer_banner self._provider = provider - self._authenticator = authenticator or Authenticator(provider) + self._authenticator = authenticator self._bootstrap_user_services = BootstrapUserServices(services_factory, provider) static_folder = get_public_static_folder() diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py index 320a1204..10d57c6f 100644 --- a/service/pixelated/resources/root_resource.py +++ b/service/pixelated/resources/root_resource.py @@ -91,7 +91,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('backup-account', BackupAccountResource(self._services_factory)) + self._child_resources.add('backup-account', BackupAccountResource(self._services_factory, authenticator)) 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)) |