From 2bfd4b8da51310da0e11d87f64f57990d93d79e0 Mon Sep 17 00:00:00 2001 From: Tayane Fernandes Date: Thu, 9 Feb 2017 13:33:30 -0200 Subject: [#922] Rename backup account flow To differentiate between the account recovery flow and the set backup email flow, we renamed all resources and url to reflect this. with @anikarni --- .../resources/account_recovery_resource.py | 46 -------- .../pixelated/resources/backup_account_resource.py | 46 ++++++++ service/pixelated/resources/root_resource.py | 4 +- .../resources/test_account_recovery_resource.py | 43 ------- .../unit/resources/test_backup_account_resource.py | 43 +++++++ web-ui/config/copy-webpack.js | 2 +- web-ui/src/account_recovery/account_recovery.html | 12 -- web-ui/src/account_recovery/account_recovery.js | 35 ------ web-ui/src/account_recovery/page.js | 60 ---------- web-ui/src/account_recovery/page.scss | 127 --------------------- web-ui/src/backup_account/backup_account.html | 12 ++ web-ui/src/backup_account/backup_account.js | 35 ++++++ web-ui/src/backup_account/page.js | 60 ++++++++++ web-ui/src/backup_account/page.scss | 127 +++++++++++++++++++++ web-ui/test/unit/account_recovery/page.spec.js | 25 ---- web-ui/test/unit/backup_account/page.spec.js | 25 ++++ web-ui/webpack.config.js | 2 +- web-ui/webpack.production.config.js | 2 +- 18 files changed, 353 insertions(+), 353 deletions(-) delete mode 100644 service/pixelated/resources/account_recovery_resource.py create mode 100644 service/pixelated/resources/backup_account_resource.py delete mode 100644 service/test/unit/resources/test_account_recovery_resource.py create mode 100644 service/test/unit/resources/test_backup_account_resource.py delete mode 100644 web-ui/src/account_recovery/account_recovery.html delete mode 100644 web-ui/src/account_recovery/account_recovery.js delete mode 100644 web-ui/src/account_recovery/page.js delete mode 100644 web-ui/src/account_recovery/page.scss create mode 100644 web-ui/src/backup_account/backup_account.html create mode 100644 web-ui/src/backup_account/backup_account.js create mode 100644 web-ui/src/backup_account/page.js create mode 100644 web-ui/src/backup_account/page.scss delete mode 100644 web-ui/test/unit/account_recovery/page.spec.js create mode 100644 web-ui/test/unit/backup_account/page.spec.js diff --git a/service/pixelated/resources/account_recovery_resource.py b/service/pixelated/resources/account_recovery_resource.py deleted file mode 100644 index a69cac9a..00000000 --- a/service/pixelated/resources/account_recovery_resource.py +++ /dev/null @@ -1,46 +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 . - -import os -from xml.sax import SAXParseException - -from pixelated.resources import BaseResource -from twisted.python.filepath import FilePath -from pixelated.resources import get_static_folder -from twisted.web.http import OK -from twisted.web.template import Element, XMLFile, renderElement - - -class AccountRecoveryPage(Element): - loader = XMLFile(FilePath(os.path.join(get_static_folder(), 'account_recovery.html'))) - - def __init__(self): - super(AccountRecoveryPage, self).__init__() - - -class AccountRecoveryResource(BaseResource): - isLeaf = True - - def __init__(self, services_factory): - BaseResource.__init__(self, services_factory) - - def render_GET(self, request): - request.setResponseCode(OK) - return self._render_template(request) - - def _render_template(self, request): - site = AccountRecoveryPage() - return renderElement(request, site) diff --git a/service/pixelated/resources/backup_account_resource.py b/service/pixelated/resources/backup_account_resource.py new file mode 100644 index 00000000..5d9cb032 --- /dev/null +++ b/service/pixelated/resources/backup_account_resource.py @@ -0,0 +1,46 @@ +# +# 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 . + +import os +from xml.sax import SAXParseException + +from pixelated.resources import BaseResource +from twisted.python.filepath import FilePath +from pixelated.resources import get_static_folder +from twisted.web.http import OK +from twisted.web.template import Element, XMLFile, renderElement + + +class BackupAccountPage(Element): + loader = XMLFile(FilePath(os.path.join(get_static_folder(), 'backup_account.html'))) + + def __init__(self): + super(BackupAccountPage, self).__init__() + + +class BackupAccountResource(BaseResource): + isLeaf = True + + def __init__(self, services_factory): + BaseResource.__init__(self, services_factory) + + def render_GET(self, request): + request.setResponseCode(OK) + return self._render_template(request) + + def _render_template(self, request): + site = BackupAccountPage() + return renderElement(request, site) diff --git a/service/pixelated/resources/root_resource.py b/service/pixelated/resources/root_resource.py index a97bd049..206cb3be 100644 --- a/service/pixelated/resources/root_resource.py +++ b/service/pixelated/resources/root_resource.py @@ -23,7 +23,7 @@ from pixelated.resources import BaseResource, UnAuthorizedResource, UnavailableR from pixelated.resources import get_startup_folder, get_static_folder from pixelated.resources.attachments_resource import AttachmentsResource from pixelated.resources.sandbox_resource import SandboxResource -from pixelated.resources.account_recovery_resource import AccountRecoveryResource +from pixelated.resources.backup_account_resource import BackupAccountResource from pixelated.resources.contacts_resource import ContactsResource from pixelated.resources.features_resource import FeaturesResource from pixelated.resources.feedback_resource import FeedbackResource @@ -89,7 +89,7 @@ class RootResource(BaseResource): return csrf_input and csrf_input == xsrf_token def initialize(self, provider=None, disclaimer_banner=None, authenticator=None): - self._child_resources.add('recovery', AccountRecoveryResource(self._services_factory)) + self._child_resources.add('backup-account', BackupAccountResource(self._services_factory)) self._child_resources.add('sandbox', SandboxResource(self._static_folder)) self._child_resources.add('assets', File(self._static_folder)) self._child_resources.add('keys', KeysResource(self._services_factory)) diff --git a/service/test/unit/resources/test_account_recovery_resource.py b/service/test/unit/resources/test_account_recovery_resource.py deleted file mode 100644 index 01ffaed2..00000000 --- a/service/test/unit/resources/test_account_recovery_resource.py +++ /dev/null @@ -1,43 +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 . - -import os - -from mock import MagicMock, patch -from twisted.trial import unittest -from twisted.web.test.requesthelper import DummyRequest - -from pixelated.resources.account_recovery_resource import AccountRecoveryResource -from test.unit.resources import DummySite - - -class TestAccountRecoveryResource(unittest.TestCase): - def setUp(self): - self.services_factory = MagicMock() - self.resource = AccountRecoveryResource(self.services_factory) - self.web = DummySite(self.resource) - - def test_get(self): - request = DummyRequest(['/recovery']) - request.method = 'GET' - d = self.web.get(request) - - def assert_200_when_user_logged_in(_): - self.assertEqual(200, request.responseCode) - self.assertIn("DOCTYPE html", request.written[0]) - - d.addCallback(assert_200_when_user_logged_in) - return d diff --git a/service/test/unit/resources/test_backup_account_resource.py b/service/test/unit/resources/test_backup_account_resource.py new file mode 100644 index 00000000..21ae5aab --- /dev/null +++ b/service/test/unit/resources/test_backup_account_resource.py @@ -0,0 +1,43 @@ +# +# 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 . + +import os + +from mock import MagicMock, patch +from twisted.trial import unittest +from twisted.web.test.requesthelper import DummyRequest + +from pixelated.resources.backup_account_resource import BackupAccountResource +from test.unit.resources import DummySite + + +class TestBackupAccountResource(unittest.TestCase): + def setUp(self): + self.services_factory = MagicMock() + self.resource = BackupAccountResource(self.services_factory) + self.web = DummySite(self.resource) + + def test_get(self): + request = DummyRequest(['/backup-account']) + request.method = 'GET' + d = self.web.get(request) + + def assert_200_when_user_logged_in(_): + self.assertEqual(200, request.responseCode) + self.assertIn("DOCTYPE html", request.written[0]) + + d.addCallback(assert_200_when_user_logged_in) + return d diff --git a/web-ui/config/copy-webpack.js b/web-ui/config/copy-webpack.js index 8e9f9dd3..1f7f743a 100644 --- a/web-ui/config/copy-webpack.js +++ b/web-ui/config/copy-webpack.js @@ -4,7 +4,7 @@ module.exports = new CopyWebpackPlugin([ { context: 'app/', from: '404.html' }, { context: 'app/', from: 'index.html' }, { context: 'app/', from: 'sandbox.html' }, - { context: 'src/account_recovery/', from: 'account_recovery.html' }, + { context: 'src/backup_account/', from: 'backup_account.html' }, { context: 'app/', from: 'css/*' }, { context: 'app/', from: 'fonts/*' }, { context: 'app/', from: 'locales/**/*' }, diff --git a/web-ui/src/account_recovery/account_recovery.html b/web-ui/src/account_recovery/account_recovery.html deleted file mode 100644 index bd451ebc..00000000 --- a/web-ui/src/account_recovery/account_recovery.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - Pixelated Account Recovery - - -
- - - diff --git a/web-ui/src/account_recovery/account_recovery.js b/web-ui/src/account_recovery/account_recovery.js deleted file mode 100644 index d4e0f4e8..00000000 --- a/web-ui/src/account_recovery/account_recovery.js +++ /dev/null @@ -1,35 +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 . - */ - -import React from 'react'; -import { render } from 'react-dom'; -import a11y from 'react-a11y'; -import { I18nextProvider } from 'react-i18next'; - -import 'font-awesome/scss/font-awesome.scss'; - -import PageWrapper from './page'; -import i18n from '../i18n'; - -if (process.env.NODE_ENV === 'development') a11y(React); - -render( - - - , - document.getElementById('root') -); diff --git a/web-ui/src/account_recovery/page.js b/web-ui/src/account_recovery/page.js deleted file mode 100644 index 2ae26d12..00000000 --- a/web-ui/src/account_recovery/page.js +++ /dev/null @@ -1,60 +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 . - */ - -import React from 'react'; -import { translate } from 'react-i18next'; -import SubmitButton from 'src/common/submit_button/submit_button'; -import InputField from 'src/common/input_field/input_field'; -import Footer from 'src/common/footer/footer'; -import Header from 'src/common/header/header'; - -import './page.scss'; - -export const Page = ({ t }) => ( -
-
-
-
- {t('backup-account.image-description')} -
-

{t('backup-account.title')}

-

{t('backup-account.paragraph1')}

-

{t('backup-account.paragraph2')}

- - -