From 8cec60f9ff85697906ca8063f47297d0de637366 Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Tue, 22 Sep 2020 11:25:30 -0500 Subject: [PATCH] feat: remove 2fa UI in favor of challenges --- .../directives/views/accountMenu.ts | 49 +++++-------------- .../views/challenge_modal/challenge_modal.ts | 2 +- .../templates/directives/account-menu.pug | 30 +----------- 3 files changed, 14 insertions(+), 67 deletions(-) diff --git a/app/assets/javascripts/directives/views/accountMenu.ts b/app/assets/javascripts/directives/views/accountMenu.ts index 37d3ef907..1f77902ca 100644 --- a/app/assets/javascripts/directives/views/accountMenu.ts +++ b/app/assets/javascripts/directives/views/accountMenu.ts @@ -26,7 +26,6 @@ import { SyncOpStatus } from 'snjs/dist/@types/services/sync/sync_op_status'; import { PasswordWizardType } from '@/types'; import { BackupFile } from 'snjs/dist/@types/services/protocol_service'; import { confirmDialog, alertDialog } from '@/services/alertService'; -import { HttpResponse } from 'snjs/dist/@types/services/api/http_service'; const ELEMENT_ID_IMPORT_PASSWORD_INPUT = 'import-password-request'; @@ -44,8 +43,6 @@ type FormData = { showPasscodeForm: boolean strictSignin?: boolean ephemeral: boolean - mfa: HttpResponse - userMfaCode?: string mergeLocal?: boolean url: string authenticating: boolean @@ -220,12 +217,10 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> { formData.user_password!, formData.strictSignin, formData.ephemeral, - formData.mfa && formData.mfa.payload.mfa_key, - formData.userMfaCode, formData.mergeLocal ); - const hasError = !response || response.error; - if (!hasError) { + const error = response.error; + if (!error) { await this.setFormDataState({ authenticating: false, user_password: undefined @@ -233,29 +228,13 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> { this.close(); return; } - const error = response - ? response.error! - : { - message: "An unknown error occured.", - tag: undefined, - status: 500 - } as HttpResponse; - if (error.tag === 'mfa-required' || error.tag === 'mfa-invalid') { - await this.setFormDataState({ - showLogin: false, - mfa: error, - status: undefined - }); - } else { - await this.setFormDataState({ - showLogin: true, - mfa: undefined, - status: undefined, - user_password: undefined - }); - if (error.message) { - this.application!.alertService!.alert(error.message); - } + await this.setFormDataState({ + showLogin: true, + status: undefined, + user_password: undefined + }); + if (error.message) { + this.application!.alertService!.alert(error.message); } await this.setFormDataState({ authenticating: false @@ -281,17 +260,11 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> { this.getState().formData.ephemeral, this.getState().formData.mergeLocal ); - if (!response || response.error) { + const error = response.error; + if (error) { await this.setFormDataState({ status: undefined }); - const error = response - ? response.error! - : { - message: "An unknown error occured.", - tag: undefined, - status: 500 - } as HttpResponse; await this.setFormDataState({ authenticating: false }); diff --git a/app/assets/javascripts/views/challenge_modal/challenge_modal.ts b/app/assets/javascripts/views/challenge_modal/challenge_modal.ts index 969f7f4b3..c51abd7a5 100644 --- a/app/assets/javascripts/views/challenge_modal/challenge_modal.ts +++ b/app/assets/javascripts/views/challenge_modal/challenge_modal.ts @@ -155,10 +155,10 @@ class ChallengeModalCtrl extends PureViewCtrl<{}, ChallengeModalState> { }; } + /** @template */ cancel() { if (this.cancelable) { this.application!.cancelChallenge(this.challenge); - this.dismiss(); } } diff --git a/app/assets/templates/directives/account-menu.pug b/app/assets/templates/directives/account-menu.pug index 0898b91dc..bfd48cd3e 100644 --- a/app/assets/templates/directives/account-menu.pug +++ b/app/assets/templates/directives/account-menu.pug @@ -8,8 +8,7 @@ ng-if=` !self.state.user && !self.state.formData.showLogin && - !self.state.formData.showRegister && - !self.state.formData.mfa` + !self.state.formData.showRegister` ) .sk-panel-row .sk-h1 Sign in or register to enable sync and end-to-end encryption. @@ -131,35 +130,10 @@ type='checkbox' ) p.sk-p Merge local data ({{self.notesAndTagsCount()}} notes and tags) - .sk-panel-section(ng-if='self.state.formData.mfa') - form.sk-panel-form(ng-submit='self.submitMfaForm()') - .sk-p.sk-panel-row {{self.state.formData.mfa.message}} - .sk-panel-row - input.sk-input.contrast( - autofocus='true', - name='mfa', - ng-model='self.state.formData.userMfaCode', - placeholder='Enter Code', - required='', - should-focus='true', - sn-autofocus='true' - ) - .sk-button-group.stretch.sk-panel-row.form-submit( - ng-if='!self.state.formData.status' - ) - button.sk-button.info.featured(type='submit') - .sk-label Sign In - .sk-panel-section.no-bottom-pad(ng-if='self.state.formData.status') - .sk-panel-row - .sk-panel-row - .sk-horizontal-group - .sk-spinner.small.neutral - .sk-label {{self.state.formData.status}} div( ng-if=` !self.state.formData.showLogin && - !self.state.formData.showRegister && - !self.state.formData.mfa` + !self.state.formData.showRegister` ) .sk-panel-section(ng-if='self.state.user') .sk-notification.danger(ng-if='self.syncStatus.error')