From f1120d3746dfc3448b0ca861140660abcb828257 Mon Sep 17 00:00:00 2001 From: Simeon Simeonov Date: Mon, 1 Jun 2026 23:15:34 +0200 Subject: Fix master password when having parent instances --- src/etoolkit/__init__.py | 2 +- src/etoolkit/etoolkit.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/etoolkit/__init__.py b/src/etoolkit/__init__.py index 416be15..c4b43da 100644 --- a/src/etoolkit/__init__.py +++ b/src/etoolkit/__init__.py @@ -18,7 +18,7 @@ from .etoolkit import EtoolkitInstance, EtoolkitInstanceError __author__ = 'Simeon Simeonov' -__version__ = '2.3.0' +__version__ = '2.3.1' __license__ = 'GPL3' diff --git a/src/etoolkit/etoolkit.py b/src/etoolkit/etoolkit.py index 9369571..194a2bb 100644 --- a/src/etoolkit/etoolkit.py +++ b/src/etoolkit/etoolkit.py @@ -75,11 +75,13 @@ class EtoolkitInstance: self._instance_data = data['instances'][name] except KeyError as err: raise EtoolkitInstanceError(f'Unknown instance "{name}"') from err + if self._instance_data.get('ETOOLKIT_PARENT'): self._parent = EtoolkitInstance( self._instance_data['ETOOLKIT_PARENT'], data ) self._raw_env_variables.update(self._parent.raw_env_variables) + if self._instance_data.get('ETOOLKIT_SENSITIVE'): if not isinstance(self._instance_data['ETOOLKIT_SENSITIVE'], list): raise EtoolkitInstanceError( @@ -88,10 +90,12 @@ class EtoolkitInstance: self._sensitive_env_variables.extend( self._instance_data['ETOOLKIT_SENSITIVE'] ) + self._raw_env_variables.update(self._instance_data) # remove non env. variable data self._raw_env_variables.pop('ETOOLKIT_PARENT', None) self._raw_env_variables.pop('ETOOLKIT_SENSITIVE', None) + if 'general' in data and 'MASTER_PASSWORD_HASH' in data['general']: self._master_password_hash = data['general'][ 'MASTER_PASSWORD_HASH' @@ -570,8 +574,8 @@ class EtoolkitInstance: :return: Decrypted value :rtype: str """ - if self._master_password is not None: - master_password = self._master_password + if self.master_password is not None: + master_password = self.master_password else: # master password not set for this instance if self._prompt_func is None: -- cgit v1.3