From 0b5cb901aafb074a26633772a51d7a05e3dad82c Mon Sep 17 00:00:00 2001
From: Vincent Salucci <26154748+vincentsalucci@users.noreply.github.com>
Date: Sat, 25 Apr 2020 09:13:00 -0500
Subject: [PATCH] Added warning dialog for log out confirmation (#1216)
---
src/_locales/en/messages.json | 6 ++++++
src/popup/settings/settings.component.html | 4 ++--
src/popup/settings/settings.component.ts | 15 +++++++++++++++
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index 4bdb0c6edd..dbd60de8ae 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -1257,5 +1257,11 @@
"lock": {
"message": "Lock",
"description": "Verb form: to make secure or inaccesible by"
+ },
+ "vaultTimeoutLogOutConfirmation": {
+ "message": "Logging out will remove all access to your vault and requires online authentication after the timeout period. Are you sure you want to use this setting?"
+ },
+ "vaultTimeoutLogOutConfirmationTitle": {
+ "message": "Timeout Action Confirmation"
}
}
diff --git a/src/popup/settings/settings.component.html b/src/popup/settings/settings.component.html
index d96e3fe972..61e8d7088d 100644
--- a/src/popup/settings/settings.component.html
+++ b/src/popup/settings/settings.component.html
@@ -33,8 +33,8 @@
-
diff --git a/src/popup/settings/settings.component.ts b/src/popup/settings/settings.component.ts
index 6bc8c679ef..b7c2a072a2 100644
--- a/src/popup/settings/settings.component.ts
+++ b/src/popup/settings/settings.component.ts
@@ -45,6 +45,7 @@ const RateUrls = {
})
export class SettingsComponent implements OnInit {
@ViewChild('vaultTimeoutSelect', { read: ElementRef }) vaultTimeoutSelectRef: ElementRef;
+ @ViewChild('vaultTimeoutActionSelect', { read: ElementRef }) vaultTimeoutActionSelectRef: ElementRef;
vaultTimeouts: any[];
vaultTimeout: number = null;
vaultTimeoutActions: any[];
@@ -126,6 +127,20 @@ export class SettingsComponent implements OnInit {
}
async saveVaultTimeoutAction(newValue: string) {
+ if (newValue === 'logOut') {
+ const confirmed = await this.platformUtilsService.showDialog(
+ this.i18nService.t('vaultTimeoutLogOutConfirmation'),
+ this.i18nService.t('vaultTimeoutLogOutConfirmationTitle'),
+ this.i18nService.t('yes'), this.i18nService.t('cancel'), 'warning');
+ if (!confirmed) {
+ this.vaultTimeoutActions.forEach((option: any, i) => {
+ if (option.value === this.vaultTimeoutAction) {
+ this.vaultTimeoutActionSelectRef.nativeElement.value = i + ': ' + this.vaultTimeoutAction;
+ }
+ });
+ return;
+ }
+ }
this.vaultTimeoutAction = newValue;
await this.vaultTimeoutService.setVaultTimeoutOptions(this.vaultTimeout != null ? this.vaultTimeout : null,
this.vaultTimeoutAction);