From 53a1aa57bc9dc89ea23b8866b0e8056e8430ac1d Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Fri, 24 Nov 2023 12:45:07 -0300 Subject: [PATCH] Fix user_id attribute modification in Component class --- src/backend/langflow/interface/custom/component.py | 7 +++++-- src/backend/langflow/interface/custom/custom_component.py | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/backend/langflow/interface/custom/component.py b/src/backend/langflow/interface/custom/component.py index 420a62a85..0f3d25d5d 100644 --- a/src/backend/langflow/interface/custom/component.py +++ b/src/backend/langflow/interface/custom/component.py @@ -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) diff --git a/src/backend/langflow/interface/custom/custom_component.py b/src/backend/langflow/interface/custom/custom_component.py index 7f1722241..5173e17a1 100644 --- a/src/backend/langflow/interface/custom/custom_component.py +++ b/src/backend/langflow/interface/custom/custom_component.py @@ -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