Fix user_id attribute modification in Component

class
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-11-24 12:45:07 -03:00
commit 53a1aa57bc
2 changed files with 7 additions and 4 deletions

View file

@ -28,10 +28,13 @@ class Component:
def __init__(self, **data):
self.cache = TTLCache(maxsize=1024, ttl=60)
for key, value in data.items():
setattr(self, key, value)
if key == "user_id":
setattr(self, "_user_id", value)
else:
setattr(self, key, value)
def __setattr__(self, key, value):
if key == "user_id" and hasattr(self, key):
if key == "_user_id" and hasattr(self, "_user_id"):
warnings.warn("Modification of user_id is not allowed")
else:
super().__setattr__(key, value)

View file

@ -186,13 +186,13 @@ class CustomComponent(Component):
@property
def keys(self):
def get_credential(name: str):
if not self.user_id:
if hasattr(self, "_user_id") and not self._user_id:
raise ValueError(f"User id is not set for {self.__class__.__name__}")
credential_service = get_credential_service() # Get service instance
# Retrieve and decrypt the credential by name for the current user
db_service = get_db_service()
with session_getter(db_service) as session:
return credential_service.get_credential(user_id=self.user_id, name=name, session=session)
return credential_service.get_credential(user_id=self._user_id, name=name, session=session)
return get_credential