check for errors and remove scope dependency
This commit is contained in:
parent
00b8a3e7be
commit
0c8dc0c3ec
|
@ -1,4 +1,4 @@
|
|||
<form name="theForm" ng-submit="$ctrl.submit()" bit-form="submitPromise">
|
||||
<form name="theForm" ng-submit="$ctrl.submit()">
|
||||
<div class="header">
|
||||
<div class="right">
|
||||
<button type="submit" class="btn btn-link">{{$ctrl.i18n.submit}}</button>
|
||||
|
@ -12,8 +12,8 @@
|
|||
<div class="list-section-item list-section-item-icon-input">
|
||||
<i class="fa fa-lock fa-lg fa-fw"></i>
|
||||
<label for="master-password" class="sr-only">{{$ctrl.i18n.masterPass}}</label>
|
||||
<input id="master-password" type="password" name="MasterPassword" placeholder="{{$ctrl.i18n.masterPass}}"
|
||||
ng-model="masterPassword">
|
||||
<input id="master-password" type="password" name="MasterPassword"
|
||||
placeholder="{{$ctrl.i18n.masterPass}}" ng-model="$ctrl.masterPassword">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -4,15 +4,16 @@ import { CryptoService } from '../../../services/abstractions/crypto.service';
|
|||
|
||||
class LockController {
|
||||
i18n: any;
|
||||
masterPassword: string;
|
||||
|
||||
constructor(public $scope: any, public $state: any, public i18nService: any,
|
||||
public cryptoService: CryptoService, public toastr: any, public userService: any,
|
||||
public SweetAlert: any, public $timeout: any) {
|
||||
constructor(public $state: any, public i18nService: any,
|
||||
public cryptoService: CryptoService, public toastr: any, public userService: any,
|
||||
public SweetAlert: any) {
|
||||
this.i18n = i18nService;
|
||||
}
|
||||
|
||||
$timeout(() => {
|
||||
document.getElementById('master-password').focus();
|
||||
});
|
||||
$onInit() {
|
||||
document.getElementById('master-password').focus();
|
||||
}
|
||||
|
||||
logOut() {
|
||||
|
@ -30,12 +31,17 @@ class LockController {
|
|||
}
|
||||
|
||||
async submit() {
|
||||
if (this.masterPassword == null || this.masterPassword === '') {
|
||||
this.toastr.error(this.i18nService.invalidMasterPassword, this.i18nService.errorsOccurred);
|
||||
return;
|
||||
}
|
||||
|
||||
const email = await this.userService.getEmail();
|
||||
const key = this.cryptoService.makeKey(this.$scope.masterPassword, email);
|
||||
const keyHash = await this.cryptoService.hashPassword(this.$scope.masterPassword, key);
|
||||
const key = this.cryptoService.makeKey(this.masterPassword, email);
|
||||
const keyHash = await this.cryptoService.hashPassword(this.masterPassword, key);
|
||||
const storedKeyHash = await this.cryptoService.getKeyHash();
|
||||
|
||||
if (storedKeyHash && keyHash && storedKeyHash === keyHash) {
|
||||
if (storedKeyHash != null && keyHash != null && storedKeyHash === keyHash) {
|
||||
await this.cryptoService.setKey(key);
|
||||
chrome.runtime.sendMessage({ command: 'unlocked' });
|
||||
this.$state.go('tabs.current');
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<form name="theForm" ng-submit="$ctrl.submit()" bit-form="submitPromise">
|
||||
<form name="theForm" ng-submit="$ctrl.submit()">
|
||||
<div class="header">
|
||||
<div class="left">
|
||||
<a ui-sref="tabs.tools({animation: 'out-slide-down'})">{{$ctrl.i18n.close}}</a>
|
||||
|
|
|
@ -11,28 +11,35 @@ export class ExportController {
|
|||
i18n: any;
|
||||
masterPassword: string;
|
||||
|
||||
constructor(private $scope: any, private $state: any, private cryptoService: CryptoService,
|
||||
constructor(private $state: any, private cryptoService: CryptoService,
|
||||
private toastr: any, private utilsService: UtilsService, private $analytics: any,
|
||||
private i18nService: any, private folderService: any, private cipherService: any,
|
||||
private $window: any, private userService: any) {
|
||||
this.i18n = i18nService;
|
||||
this.$scope.submitPromise = null;
|
||||
}
|
||||
|
||||
$onInit() {
|
||||
document.getElementById('master-password').focus();
|
||||
}
|
||||
|
||||
submit() {
|
||||
const self = this;
|
||||
this.$scope.submitPromise = this.checkPassword().then(() => {
|
||||
return self.getCsv();
|
||||
}).then((csv) => {
|
||||
self.$analytics.eventTrack('Exported Data');
|
||||
self.downloadFile(csv);
|
||||
}, () => {
|
||||
this.toastr.error(self.i18n.invalidMasterPassword, self.i18n.errorsOccurred);
|
||||
});
|
||||
async submit() {
|
||||
if (this.masterPassword == null || this.masterPassword === '') {
|
||||
this.toastr.error(this.i18nService.invalidMasterPassword, this.i18nService.errorsOccurred);
|
||||
return;
|
||||
}
|
||||
|
||||
const email = await this.userService.getEmail();
|
||||
const key = this.cryptoService.makeKey(this.masterPassword, email);
|
||||
const keyHash = await this.cryptoService.hashPassword(this.masterPassword, key);
|
||||
const storedKeyHash = await this.cryptoService.getKeyHash();
|
||||
|
||||
if (storedKeyHash != null && keyHash != null && storedKeyHash === keyHash) {
|
||||
const csv = await this.getCsv();
|
||||
this.$analytics.eventTrack('Exported Data');
|
||||
this.downloadFile(csv);
|
||||
} else {
|
||||
this.toastr.error(this.i18n.invalidMasterPassword, this.i18n.errorsOccurred);
|
||||
}
|
||||
}
|
||||
|
||||
private async checkPassword() {
|
||||
|
|
Loading…
Reference in New Issue