diff --git a/data_encryption/models/encrypted_data.py b/data_encryption/models/encrypted_data.py index d9dbc67..2e95265 100644 --- a/data_encryption/models/encrypted_data.py +++ b/data_encryption/models/encrypted_data.py @@ -44,14 +44,14 @@ class EncryptedData(models.Model): cipher = self._get_cipher(env) try: return cipher.decrypt(self.encrypted_data).decode() - except InvalidToken: + except InvalidToken as exc: raise ValidationError( _( "Password has been encrypted with a different " "key. Unless you can recover the previous key, " "this password is unreadable." ) - ) + ) from exc @api.model @ormcache("self._uid", "name", "env") @@ -77,10 +77,10 @@ class EncryptedData(models.Model): return {} try: return json.loads(data) - except (ValueError, TypeError): + except (ValueError, TypeError) as exc: raise ValidationError( _("The data you are trying to read are not in a json format") - ) + ) from exc @staticmethod def _retrieve_env(): @@ -107,8 +107,11 @@ class EncryptedData(models.Model): key_str = config.get(key_name) if not key_str: raise ValidationError( - _("No '%s' entry found in config file. " "Use a key similar to: %s") - % (key_name, Fernet.generate_key()) + _( + "No '%(key_name)s' entry found in config file. " + "Use a key similar to: %(key)s" + ) + % {"key_name": key_name, "key": Fernet.generate_key()} ) # key should be in bytes format key = key_str.encode() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..368c5c2 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +# generated from manifests external_dependencies +cryptography diff --git a/setup/data_encryption/odoo/addons/data_encryption b/setup/data_encryption/odoo/addons/data_encryption new file mode 120000 index 0000000..2aee058 --- /dev/null +++ b/setup/data_encryption/odoo/addons/data_encryption @@ -0,0 +1 @@ +../../../../data_encryption \ No newline at end of file diff --git a/setup/data_encryption/setup.py b/setup/data_encryption/setup.py new file mode 100644 index 0000000..28c57bb --- /dev/null +++ b/setup/data_encryption/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)