From 50dd2048ffc5de1b47ed004d3b88c61ad94d7b3b Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 16 Nov 2018 11:08:36 -0500 Subject: [PATCH] view account's fingerprint phrase --- src/_locales/en/messages.json | 9 ++++++-- src/popup/settings/settings.component.html | 5 ++++ src/popup/settings/settings.component.ts | 27 +++++++++++++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index 67ed789828..0434eb056e 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -121,8 +121,13 @@ "changeMasterPassword": { "message": "Change Master Password" }, - "changeEmail": { - "message": "Change Email" + "fingerprintPhrase": { + "message": "Fingerprint Phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." + }, + "yourAccountsFingerprint": { + "message": "Your account's fingerprint phrase", + "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "twoStepLogin": { "message": "Two-step Login" diff --git a/src/popup/settings/settings.component.html b/src/popup/settings/settings.component.html index 21ba408404..074625d127 100644 --- a/src/popup/settings/settings.component.html +++ b/src/popup/settings/settings.component.html @@ -58,6 +58,11 @@
{{'changeMasterPassword' | i18n}}
+ +
{{'fingerprintPhrase' | i18n}}
+ +
{{'logOut' | i18n}}
diff --git a/src/popup/settings/settings.component.ts b/src/popup/settings/settings.component.ts index 15d4cdc515..27f5cbfa50 100644 --- a/src/popup/settings/settings.component.ts +++ b/src/popup/settings/settings.component.ts @@ -15,12 +15,14 @@ import { DeviceType } from 'jslib/enums/deviceType'; import { ConstantsService } from 'jslib/services/constants.service'; +import { CryptoService } from 'jslib/abstractions/crypto.service'; import { EnvironmentService } from 'jslib/abstractions/environment.service'; import { I18nService } from 'jslib/abstractions/i18n.service'; import { LockService } from 'jslib/abstractions/lock.service'; import { MessagingService } from 'jslib/abstractions/messaging.service'; import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service'; import { StorageService } from 'jslib/abstractions/storage.service'; +import { UserService } from 'jslib/abstractions/user.service'; const RateUrls = { [DeviceType.ChromeExtension]: @@ -50,7 +52,8 @@ export class SettingsComponent implements OnInit { constructor(private platformUtilsService: PlatformUtilsService, private i18nService: I18nService, private analytics: Angulartics2, private lockService: LockService, private storageService: StorageService, public messagingService: MessagingService, - private router: Router, private environmentService: EnvironmentService) { + private router: Router, private environmentService: EnvironmentService, + private cryptoService: CryptoService, private userService: UserService) { } async ngOnInit() { @@ -198,6 +201,28 @@ export class SettingsComponent implements OnInit { }); } + async fingerprint() { + this.analytics.eventTrack.next({ action: 'Clicked Fingerprint' }); + + const fingerprint = await this.cryptoService.getFingerprint(await this.userService.getUserId()); + const p = document.createElement('p'); + p.innerText = this.i18nService.t('yourAccountsFingerprint') + ':'; + const p2 = document.createElement('p'); + p2.innerText = fingerprint.join('-'); + const div = document.createElement('div'); + div.appendChild(p); + div.appendChild(p2); + + const result = await swal({ + content: { element: div }, + buttons: [this.i18nService.t('close'), this.i18nService.t('learnMore')], + }); + + if (result) { + this.platformUtilsService.launchUri('https://help.bitwarden.com'); + } + } + rate() { this.analytics.eventTrack.next({ action: 'Rate Extension' }); BrowserApi.createNewTab((RateUrls as any)[this.platformUtilsService.getDevice()]);