diff --git a/js/app/controllers/credential.js b/js/app/controllers/credential.js index 3a27fbdb..9dec7fa0 100644 --- a/js/app/controllers/credential.js +++ b/js/app/controllers/credential.js @@ -39,7 +39,13 @@ angular.module('passmanApp') var _credentials = []; for (var i = 0; i < $scope.active_vault.credentials.length; i++) { try { - $scope.active_vault.credentials[i] = CredentialService.decryptCredential(angular.copy(vault.credentials[i])); + if(!$scope.active_vault.credentials[i].shared_key) { + $scope.active_vault.credentials[i] = CredentialService.decryptCredential(angular.copy(vault.credentials[i])); + + } else { + var enc_key = EncryptService.decryptString(vault.credentials[i].shared_key); + $scope.active_vault.credentials[i] = ShareService.decryptSharedCredential(angular.copy(vault.credentials[i]), enc_key); + } $scope.active_vault.credentials[i].tags_raw = $scope.active_vault.credentials[i].tags; } catch (e) { NotificationService.showNotification('An error happend during decryption', 5000); @@ -49,9 +55,8 @@ angular.module('passmanApp') $location.path('/') } - if ($scope.active_vault.credentials[i]) { + if ($scope.active_vault.credentials[i].tags) { TagService.addTags($scope.active_vault.credentials[i].tags); - } } $scope.show_spinner = false; diff --git a/js/app/controllers/share.js b/js/app/controllers/share.js index 2a2655c0..fa7f9a14 100644 --- a/js/app/controllers/share.js +++ b/js/app/controllers/share.js @@ -133,7 +133,7 @@ angular.module('passmanApp') console.log(key); var encryptedSharedCredential = ShareService.encryptSharedCredential($scope.storedCredential, key); - CredentialService.updateCredential(encryptedSharedCredential); + CredentialService.updateCredential(encryptedSharedCredential, true); var list = $scope.share_settings.credentialSharedWithUserAndGroup; console.log(list); diff --git a/js/app/services/credentialservice.js b/js/app/services/credentialservice.js index accf31ae..f432d529 100644 --- a/js/app/services/credentialservice.js +++ b/js/app/services/credentialservice.js @@ -60,13 +60,18 @@ angular.module('passmanApp') getEncryptedFields: function () { return _encryptedFields; }, - updateCredential: function (credential) { + updateCredential: function (credential, skipEncyption) { var _credential = angular.copy(credential); - for (var i = 0; i < _encryptedFields.length; i++) { - var field = _encryptedFields[i]; - var fieldValue = angular.copy(credential[field]); - _credential[field] = EncryptService.encryptString(JSON.stringify(fieldValue)); + if(!skipEncyption){ + for (var i = 0; i < _encryptedFields.length; i++) { + var field = _encryptedFields[i]; + var fieldValue = angular.copy(credential[field]); + _credential[field] = EncryptService.encryptString(JSON.stringify(fieldValue)); + } + } else { + console.log('Skipping encryption') } + _credential.expire_time = new Date( angular.copy(credential.expire_time) ).getTime() / 1000; var queryUrl = OC.generateUrl('apps/passman/api/v2/credentials/' + credential.credential_id);