feat: remove 2fa UI in favor of challenges
This commit is contained in:
@@ -26,7 +26,6 @@ import { SyncOpStatus } from 'snjs/dist/@types/services/sync/sync_op_status';
|
|||||||
import { PasswordWizardType } from '@/types';
|
import { PasswordWizardType } from '@/types';
|
||||||
import { BackupFile } from 'snjs/dist/@types/services/protocol_service';
|
import { BackupFile } from 'snjs/dist/@types/services/protocol_service';
|
||||||
import { confirmDialog, alertDialog } from '@/services/alertService';
|
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';
|
const ELEMENT_ID_IMPORT_PASSWORD_INPUT = 'import-password-request';
|
||||||
|
|
||||||
@@ -44,8 +43,6 @@ type FormData = {
|
|||||||
showPasscodeForm: boolean
|
showPasscodeForm: boolean
|
||||||
strictSignin?: boolean
|
strictSignin?: boolean
|
||||||
ephemeral: boolean
|
ephemeral: boolean
|
||||||
mfa: HttpResponse
|
|
||||||
userMfaCode?: string
|
|
||||||
mergeLocal?: boolean
|
mergeLocal?: boolean
|
||||||
url: string
|
url: string
|
||||||
authenticating: boolean
|
authenticating: boolean
|
||||||
@@ -220,12 +217,10 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> {
|
|||||||
formData.user_password!,
|
formData.user_password!,
|
||||||
formData.strictSignin,
|
formData.strictSignin,
|
||||||
formData.ephemeral,
|
formData.ephemeral,
|
||||||
formData.mfa && formData.mfa.payload.mfa_key,
|
|
||||||
formData.userMfaCode,
|
|
||||||
formData.mergeLocal
|
formData.mergeLocal
|
||||||
);
|
);
|
||||||
const hasError = !response || response.error;
|
const error = response.error;
|
||||||
if (!hasError) {
|
if (!error) {
|
||||||
await this.setFormDataState({
|
await this.setFormDataState({
|
||||||
authenticating: false,
|
authenticating: false,
|
||||||
user_password: undefined
|
user_password: undefined
|
||||||
@@ -233,29 +228,13 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> {
|
|||||||
this.close();
|
this.close();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const error = response
|
await this.setFormDataState({
|
||||||
? response.error!
|
showLogin: true,
|
||||||
: {
|
status: undefined,
|
||||||
message: "An unknown error occured.",
|
user_password: undefined
|
||||||
tag: undefined,
|
});
|
||||||
status: 500
|
if (error.message) {
|
||||||
} as HttpResponse;
|
this.application!.alertService!.alert(error.message);
|
||||||
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({
|
await this.setFormDataState({
|
||||||
authenticating: false
|
authenticating: false
|
||||||
@@ -281,17 +260,11 @@ class AccountMenuCtrl extends PureViewCtrl<{}, AccountMenuState> {
|
|||||||
this.getState().formData.ephemeral,
|
this.getState().formData.ephemeral,
|
||||||
this.getState().formData.mergeLocal
|
this.getState().formData.mergeLocal
|
||||||
);
|
);
|
||||||
if (!response || response.error) {
|
const error = response.error;
|
||||||
|
if (error) {
|
||||||
await this.setFormDataState({
|
await this.setFormDataState({
|
||||||
status: undefined
|
status: undefined
|
||||||
});
|
});
|
||||||
const error = response
|
|
||||||
? response.error!
|
|
||||||
: {
|
|
||||||
message: "An unknown error occured.",
|
|
||||||
tag: undefined,
|
|
||||||
status: 500
|
|
||||||
} as HttpResponse;
|
|
||||||
await this.setFormDataState({
|
await this.setFormDataState({
|
||||||
authenticating: false
|
authenticating: false
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -155,10 +155,10 @@ class ChallengeModalCtrl extends PureViewCtrl<{}, ChallengeModalState> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @template */
|
||||||
cancel() {
|
cancel() {
|
||||||
if (this.cancelable) {
|
if (this.cancelable) {
|
||||||
this.application!.cancelChallenge(this.challenge);
|
this.application!.cancelChallenge(this.challenge);
|
||||||
this.dismiss();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
ng-if=`
|
ng-if=`
|
||||||
!self.state.user &&
|
!self.state.user &&
|
||||||
!self.state.formData.showLogin &&
|
!self.state.formData.showLogin &&
|
||||||
!self.state.formData.showRegister &&
|
!self.state.formData.showRegister`
|
||||||
!self.state.formData.mfa`
|
|
||||||
)
|
)
|
||||||
.sk-panel-row
|
.sk-panel-row
|
||||||
.sk-h1 Sign in or register to enable sync and end-to-end encryption.
|
.sk-h1 Sign in or register to enable sync and end-to-end encryption.
|
||||||
@@ -131,35 +130,10 @@
|
|||||||
type='checkbox'
|
type='checkbox'
|
||||||
)
|
)
|
||||||
p.sk-p Merge local data ({{self.notesAndTagsCount()}} notes and tags)
|
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(
|
div(
|
||||||
ng-if=`
|
ng-if=`
|
||||||
!self.state.formData.showLogin &&
|
!self.state.formData.showLogin &&
|
||||||
!self.state.formData.showRegister &&
|
!self.state.formData.showRegister`
|
||||||
!self.state.formData.mfa`
|
|
||||||
)
|
)
|
||||||
.sk-panel-section(ng-if='self.state.user')
|
.sk-panel-section(ng-if='self.state.user')
|
||||||
.sk-notification.danger(ng-if='self.syncStatus.error')
|
.sk-notification.danger(ng-if='self.syncStatus.error')
|
||||||
|
|||||||
Reference in New Issue
Block a user