diff --git a/appinfo/database.xml b/appinfo/database.xml index 88cd1ad0..c4c18fb5 100644 --- a/appinfo/database.xml +++ b/appinfo/database.xml @@ -229,6 +229,10 @@ boolean false + + compromised + clob + shared_key clob diff --git a/appinfo/info.xml b/appinfo/info.xml index b5041a01..1f23ff1b 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -19,7 +19,7 @@ Features: - Import from various password managers (KeePass, LastPass, DashLane, ZOHO, Clipperz.is ) For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc) ]]> - 2.2.1 + 2.2.7 agpl Sander Brand Marcos Zuriaga @@ -42,8 +42,8 @@ For an demo of this app visit [https://demo.passman.cc](https://demo.passman.cc) pgsql mysql openssl - - + + diff --git a/controller/credentialcontroller.php b/controller/credentialcontroller.php index cb3a3265..96e5accc 100644 --- a/controller/credentialcontroller.php +++ b/controller/credentialcontroller.php @@ -70,7 +70,7 @@ class CredentialController extends ApiController { $credential_id, $custom_fields, $delete_time, $description, $email, $expire_time, $favicon, $files, $guid, $hidden, $label, $otp, $password, $renew_interval, - $tags, $url, $username, $vault_id) { + $tags, $url, $username, $vault_id, $compromised) { $credential = array( 'credential_id' => $credential_id, 'guid' => $guid, @@ -93,6 +93,7 @@ class CredentialController extends ApiController { 'custom_fields' => $custom_fields, 'otp' => $otp, 'hidden' => $hidden, + 'compromised' => $compromised ); @@ -125,7 +126,7 @@ class CredentialController extends ApiController { $credential_id, $custom_fields, $delete_time, $credential_guid, $description, $email, $expire_time, $icon, $files, $guid, $hidden, $label, $otp, $password, $renew_interval, - $tags, $url, $username, $vault_id, $revision_created, $shared_key, $acl, $unshare_action, $set_share_key, $skip_revision) { + $tags, $url, $username, $vault_id, $revision_created, $shared_key, $acl, $unshare_action, $set_share_key, $skip_revision, $compromised) { $storedCredential = $this->credentialService->getCredentialByGUID($credential_guid); @@ -151,7 +152,8 @@ class CredentialController extends ApiController { 'delete_time' => $delete_time, 'hidden' => $hidden, 'otp' => $otp, - 'user_id' => $storedCredential->getUserId() + 'user_id' => $storedCredential->getUserId(), + 'compromised' => $compromised ); diff --git a/js/app/controllers/credential.js b/js/app/controllers/credential.js index 0ad511aa..be6f41fc 100644 --- a/js/app/controllers/credential.js +++ b/js/app/controllers/credential.js @@ -105,6 +105,9 @@ } angular.merge($scope.active_vault.credentials, _credentials); $scope.show_spinner = false; + + console.log($scope.active_vault.credentials) + $rootScope.$broadcast('credentials_loaded'); $rootScope.vaultCache[$scope.active_vault.guid] = angular.copy($scope.active_vault); if(!vault.private_sharing_key){ diff --git a/js/app/services/credentialservice.js b/js/app/services/credentialservice.js index 4c5d5f3b..b2859cfa 100644 --- a/js/app/services/credentialservice.js +++ b/js/app/services/credentialservice.js @@ -55,9 +55,10 @@ 'files': [], 'custom_fields': [], 'otp': {}, + 'compromised': false, 'hidden': false }; - var _encryptedFields = ['description', 'username', 'password', 'files', 'custom_fields', 'otp', 'email', 'tags', 'url']; + var _encryptedFields = ['description', 'username', 'password', 'files', 'custom_fields', 'otp', 'email', 'tags', 'url', 'compromised']; return { @@ -140,8 +141,14 @@ var fieldValue = angular.copy(credential[field]); var field_decrypted_value; try { - field_decrypted_value = EncryptService.decryptString(fieldValue, key); + if(fieldValue!==null){ + field_decrypted_value = EncryptService.decryptString(fieldValue, key); + }else{ + field_decrypted_value=null; + } } catch (e) { + console.log(fieldValue) + console.log(e) throw e; } try { diff --git a/lib/Db/Credential.php b/lib/Db/Credential.php index 02187e0b..d99b2511 100644 --- a/lib/Db/Credential.php +++ b/lib/Db/Credential.php @@ -70,6 +70,8 @@ use \OCP\AppFramework\Db\Entity; * @method string getHidden() * @method void setSharedKey(string $value) * @method string getSharedKey() + * @method void setCompromised(bool $value) + * @method bool getCompromised() @@ -101,6 +103,7 @@ class Credential extends Entity implements \JsonSerializable{ protected $otp; protected $hidden; protected $sharedKey; + protected $compromised; public function __construct() { // add types in constructor @@ -142,6 +145,7 @@ class Credential extends Entity implements \JsonSerializable{ 'otp' => $this->getOtp(), 'hidden' => $this->getHidden(), 'shared_key' => $this->getSharedKey(), + 'compromised' => $this->getCompromised() ]; } } \ No newline at end of file diff --git a/lib/Db/CredentialMapper.php b/lib/Db/CredentialMapper.php index 46cbe073..2ae6e8e3 100644 --- a/lib/Db/CredentialMapper.php +++ b/lib/Db/CredentialMapper.php @@ -138,6 +138,7 @@ class CredentialMapper extends Mapper { $credential->setCustomFields($raw_credential['custom_fields']); $credential->setOtp($raw_credential['otp']); $credential->setHidden($raw_credential['hidden']); + $credential->setCompromised($raw_credential['compromised']); if (isset($raw_credential['shared_key'])) { $credential->setSharedKey($raw_credential['shared_key']); } @@ -177,6 +178,7 @@ class CredentialMapper extends Mapper { $credential->setOtp($raw_credential['otp']); $credential->setHidden($raw_credential['hidden']); $credential->setDeleteTime($raw_credential['delete_time']); + $credential->setCompromised($raw_credential['compromised']); if (isset($raw_credential['shared_key'])) { $credential->setSharedKey($raw_credential['shared_key']);