Force logout if localstorage password is wrong

This commit is contained in:
brantje 2016-09-27 22:02:04 +02:00
parent 65f2768411
commit 79052e4d70
4 changed files with 26 additions and 8 deletions

View file

@ -218,10 +218,22 @@ angular.module('passmanApp')
VaultService.getVault($scope.active_vault).then(function (credentials) {
var _credentials = [];
for (var i = 0; i < credentials.length; i++) {
var _c = CredentialService.decryptCredential(angular.copy(credentials[i]));
_c.tags_raw = _c.tags;
TagService.addTags(_c.tags);
_credentials.push(_c);
try {
var _c = CredentialService.decryptCredential(angular.copy(credentials[i]));
} catch (e){
CacheService.set('credential_cache_' + $scope.active_vault.vault_id, []);
NotificationService.showNotification('An error happend during decryption', 5000);
$rootScope.$broadcast('logout');
SettingsService.setSetting('defaultVaultPass', null);
SettingsService.setSetting('defaultVault', null);
$location.path('/')
}
if(_c) {
_c.tags_raw = _c.tags;
TagService.addTags(_c.tags);
_credentials.push(_c);
}
}
$scope.credentials = _credentials;
$scope.show_spinner = false;

View file

@ -107,8 +107,14 @@ angular.module('passmanApp')
for (var i = 0; i < _encryptedFields.length; i++) {
var field = _encryptedFields[i];
var fieldValue = angular.copy(credential[field]);
try {
var field_decrypted_value = EncryptService.decryptString(fieldValue)
} catch (e){
console.log(e)
throw e
}
try{
credential[field] = JSON.parse(EncryptService.decryptString(fieldValue));
credential[field] = JSON.parse(field_decrypted_value);
} catch (e){
console.log('Field' + field + ' in '+ credential.label +' could not be parsed! Value:'+ fieldValue)
throw e

View file

@ -32,8 +32,7 @@ angular.module('passmanApp')
try {
return sjcl.decrypt(_key, ciphertext, encryption_config, rp)
} catch(e) {
Error("Can't decrypt: "+e);
return;
throw e;
}
}
}

View file

@ -11,8 +11,9 @@ angular.module('passmanApp')
.service('SettingsService', ['localStorageService', function (localStorageService) {
var settings = {
defaultVault: null,
defaultVaultPassword: null
defaultVaultPass: null
};
var neverSend = ['defaultVault', 'defaultVaultPass'];
var cookie = localStorageService.get('settings');
settings = angular.merge(settings, cookie);