From 4b208ad03e9ffe9ab784bc88568ffcf868e4edfd Mon Sep 17 00:00:00 2001 From: Kenio de Souza Date: Wed, 12 Nov 2025 16:52:09 -0300 Subject: [PATCH] =?UTF-8?q?fix():=20Ajustado=20token=20para=20visualiza?= =?UTF-8?q?=C3=A7=C3=A3o=20de=20arquivos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actions/validations/hash.py | 16 ++++++++++++++-- .../ato_principal_show_atos_repository.py | 7 +++++++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/actions/validations/hash.py b/actions/validations/hash.py index c865c97..811c7be 100644 --- a/actions/validations/hash.py +++ b/actions/validations/hash.py @@ -73,11 +73,23 @@ def generate_temporary_token( secret_key: str, algorithm: str, ) -> str: + + # Se for set, converte o primeiro elemento para string + if isinstance(file_path, set): + file_path = next(iter(file_path)) # pega o primeiro valor do set + + # Se ainda não for string, força conversão + file_path = str(file_path) + + # Retorna a string separada por "/" + file_path = file_path.split("/") + """Gera um token JWT válido por poucos minutos.""" expire = datetime.utcnow() + timedelta(minutes=expires_minutes) payload = { - "sub": file_id, - "filename": file_path, # caminho relativo completo + "faixa_superior": file_path[0], + "ato_id": file_path[1], + "file_name": file_path[2], # caminho relativo completo "exp": expire, } return jwt.encode(payload, secret_key, algorithm=algorithm) diff --git a/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py b/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py index 7526099..9d9cf48 100644 --- a/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py +++ b/packages/v1/administrativo/repositories/ato_principal/ato_principal_show_atos_repository.py @@ -23,6 +23,7 @@ URL_API = getattr(DB_SETTINGS, "url_api", None) # === Configuração do token temporário === SECRET_KEY = getattr(DB_SETTINGS, "aeskey", None) ALGORITHM = "HS256" +EXPIRE = 12 class ShowAtosRepository: @@ -119,6 +120,9 @@ class ShowAtosRepository: f"{URL_API}/view/{generate_storage_hash()}/" + get_last_part({d.url.decode("utf-8")}) + "?token=" + + generate_temporary_token( + {d.url.decode("utf-8")}, EXPIRE, SECRET_KEY, ALGORITHM + ) if d.url else None ), @@ -185,6 +189,9 @@ class ShowAtosRepository: f"{URL_API}/view/{generate_storage_hash()}/" + get_last_part({d.url.decode("utf-8")}) + "?token=" + + generate_temporary_token( + {d.url.decode("utf-8")}, EXPIRE, SECRET_KEY, ALGORITHM + ) if d.url else None ),