Browse Source

Fix(OnlyOffice): Remove substituições de URL nos callbacks

Remove lógica que substituía URLs de download do OnlyOffice
por endereços internos do Docker. Com OnlyOffice remoto, as
URLs retornadas já são acessíveis publicamente.
pull/3858/head
rangelbruno 8 months ago
parent
commit
8b2c423c54
  1. 3
      sapl/base/onlyoffice_template_views.py
  2. 12
      sapl/materia/onlyoffice_materia_views.py
  3. 13
      sapl/materia/onlyoffice_views.py
  4. 4
      sapl/materia/views_assinatura.py
  5. 3
      sapl/norma/onlyoffice_views.py
  6. 3
      sapl/protocoloadm/onlyoffice_views.py

3
sapl/base/onlyoffice_template_views.py

@ -175,9 +175,6 @@ def template_onlyoffice_callback(request, pk):
# Status 2 ou 6 significa que o documento foi salvo
if status in [2, 6] and download_url:
# Substitui localhost:8001 por onlyoffice:80 para acesso interno Docker
if 'localhost:8001' in download_url:
download_url = download_url.replace('localhost:8001', 'onlyoffice:80')
template = get_object_or_404(DocumentTemplate, pk=pk)

12
sapl/materia/onlyoffice_materia_views.py

@ -194,9 +194,6 @@ def materia_onlyoffice_callback(request, pk):
# Status 2 ou 6 significa que o documento foi salvo
if status in [2, 6] and download_url:
# Substitui localhost:8001 por onlyoffice:80 para acesso interno Docker
if 'localhost:8001' in download_url:
download_url = download_url.replace('localhost:8001', 'onlyoffice:80')
materia = get_object_or_404(MateriaLegislativa, pk=pk)
@ -435,9 +432,6 @@ def docacessorio_onlyoffice_callback(request, pk):
# Status 2 ou 6 significa que o documento foi salvo
if status in [2, 6] and download_url:
# Substitui localhost:8001 por onlyoffice:80 para acesso interno Docker
if 'localhost:8001' in download_url:
download_url = download_url.replace('localhost:8001', 'onlyoffice:80')
documento = get_object_or_404(DocumentoAcessorio, pk=pk)
@ -623,12 +617,6 @@ def materia_gerar_pdf_assinatura(request, pk):
return redirect('sapl.materia:materialegislativa_detail', pk=pk)
pdf_url = file_url_elem.text
# Substitui 'onlyoffice' pelo endereço correto na rede Docker
# A URL retornada usa 'onlyoffice' como host
if 'onlyoffice/' in pdf_url and not pdf_url.startswith('http://onlyoffice:'):
pdf_url = pdf_url.replace('http://onlyoffice/', 'http://onlyoffice:80/')
logger.info(f"URL do PDF para download: {pdf_url}")
# Baixa o PDF convertido

13
sapl/materia/onlyoffice_views.py

@ -208,18 +208,7 @@ def onlyoffice_callback(request, pk):
# Status 2 ou 6 significa que o documento foi salvo
if status in [2, 6] and download_url:
logger.info(f"URL original recebida: {download_url}")
# Substitui URLs externas por URLs internas da rede Docker
# O OnlyOffice pode retornar localhost:8001 ou o host externo
import re
# Padrão para capturar qualquer host:porta antes do path
download_url = re.sub(
r'https?://[^/]+',
'http://onlyoffice:80',
download_url
)
logger.info(f"URL substituída para rede Docker: {download_url}")
logger.info(f"URL de download recebida: {download_url}")
logger.info(f"Iniciando download do documento de: {download_url}")
proposicao = get_object_or_404(Proposicao, pk=pk)

4
sapl/materia/views_assinatura.py

@ -103,10 +103,6 @@ def _gerar_pdf_da_materia(materia, request):
return None, "URL do PDF não retornada pelo OnlyOffice"
pdf_url = file_url_elem.text
if 'onlyoffice/' in pdf_url and not pdf_url.startswith('http://onlyoffice:'):
pdf_url = pdf_url.replace('http://onlyoffice/', 'http://onlyoffice:80/')
pdf_response = http_requests.get(pdf_url, timeout=60)
if pdf_response.status_code != 200:

3
sapl/norma/onlyoffice_views.py

@ -190,9 +190,6 @@ def norma_onlyoffice_callback(request, pk):
# Status 2 ou 6 significa que o documento foi salvo
if status in [2, 6] and download_url:
# Substitui localhost:8001 por onlyoffice:80 para acesso interno Docker
if 'localhost:8001' in download_url:
download_url = download_url.replace('localhost:8001', 'onlyoffice:80')
norma = get_object_or_404(NormaJuridica, pk=pk)

3
sapl/protocoloadm/onlyoffice_views.py

@ -191,9 +191,6 @@ def docadm_onlyoffice_callback(request, pk):
# Status 2 ou 6 significa que o documento foi salvo
if status in [2, 6] and download_url:
# Substitui localhost:8001 por onlyoffice:80 para acesso interno Docker
if 'localhost:8001' in download_url:
download_url = download_url.replace('localhost:8001', 'onlyoffice:80')
documento = get_object_or_404(DocumentoAdministrativo, pk=pk)

Loading…
Cancel
Save