From 4eeea48bf999cc257f1c0971a333537d0836351f Mon Sep 17 00:00:00 2001 From: Edward Oliveira Date: Tue, 14 Apr 2026 01:05:00 -0300 Subject: [PATCH] Move get_client_ip/ratelimit_ip imports to sapl.middleware.ratelimit Remove get_client_ip and ratelimit_ip from all sapl.utils import lines and replace with direct imports from sapl.middleware.ratelimit, which is now the canonical location for both functions. Affected files: sapl/comissoes/views.py sapl/protocoloadm/views.py sapl/crud/base.py sapl/norma/views.py sapl/sessao/views.py sapl/painel/views.py sapl/parlamentares/views.py sapl/utils.py (re-export shim removed) Co-Authored-By: Claude Sonnet 4.6 --- sapl/comissoes/views.py | 3 ++- sapl/crud/base.py | 3 ++- sapl/norma/views.py | 5 +++-- sapl/painel/views.py | 3 ++- sapl/parlamentares/views.py | 3 ++- sapl/protocoloadm/views.py | 5 +++-- sapl/sessao/views.py | 5 +++-- sapl/utils.py | 4 ---- 8 files changed, 17 insertions(+), 14 deletions(-) diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py index 6017ae2b3..46ad5f9f4 100644 --- a/sapl/comissoes/views.py +++ b/sapl/comissoes/views.py @@ -28,7 +28,8 @@ from sapl.crud.base import (Crud, CrudAux, MasterDetailCrud, RP_LIST) from sapl.materia.models import (MateriaEmTramitacao, MateriaLegislativa, PautaReuniao, Tramitacao) -from sapl.utils import show_results_filter_set, ratelimit_ip +from sapl.middleware.ratelimit import ratelimit_ip +from sapl.utils import show_results_filter_set from .models import (CargoComissao, Comissao, Composicao, DocumentoAcessorio, Participacao, Periodo, Reuniao, TipoComissao) diff --git a/sapl/crud/base.py b/sapl/crud/base.py index fd091ec52..8451ad276 100644 --- a/sapl/crud/base.py +++ b/sapl/crud/base.py @@ -27,7 +27,8 @@ from sapl.crispy_layout_mixin import SaplFormHelper from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL, RP_LIST) from sapl.settings import RATE_LIMITER_RATE -from sapl.utils import normalize, ratelimit_ip +from sapl.middleware.ratelimit import ratelimit_ip +from sapl.utils import normalize from ratelimit.decorators import ratelimit from django.utils.decorators import method_decorator diff --git a/sapl/norma/views.py b/sapl/norma/views.py index 38f4eb1b0..a7dc66a00 100644 --- a/sapl/norma/views.py +++ b/sapl/norma/views.py @@ -30,8 +30,9 @@ from sapl.compilacao.views import IntegracaoTaView from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, make_pagination) from sapl.materia.models import Orgao -from sapl.utils import show_results_filter_set, get_client_ip, \ - sapn_is_enabled, MultiFormatOutputMixin, ratelimit_ip +from sapl.middleware.ratelimit import get_client_ip, ratelimit_ip +from sapl.utils import show_results_filter_set, \ + sapn_is_enabled, MultiFormatOutputMixin from .forms import (AnexoNormaJuridicaForm, NormaFilterSet, NormaJuridicaForm, NormaPesquisaSimplesForm, NormaRelacionadaForm, diff --git a/sapl/painel/views.py b/sapl/painel/views.py index d488294b2..83145173a 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -23,7 +23,8 @@ from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia, PresencaOrdemDia, RegistroVotacao, SessaoPlenaria, SessaoPlenariaPresenca, VotoParlamentar, RegistroLeitura) -from sapl.utils import filiacao_data, get_client_ip, sort_lista_chave +from sapl.middleware.ratelimit import get_client_ip +from sapl.utils import filiacao_data, sort_lista_chave from .models import Cronometro diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index a46ce2b84..5c35733c0 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -33,7 +33,8 @@ from sapl.materia.models import Autoria, Proposicao, Relatoria from sapl.norma.models import AutoriaNorma, NormaJuridica from sapl.parlamentares.apps import AppConfig from sapl.rules import SAPL_GROUP_VOTANTE -from sapl.utils import (parlamentares_ativos, show_results_filter_set, ratelimit_ip) +from sapl.middleware.ratelimit import ratelimit_ip +from sapl.utils import (parlamentares_ativos, show_results_filter_set) from .forms import (ColigacaoFilterSet, FiliacaoForm, FrenteForm, LegislaturaForm, MandatoForm, ParlamentarCreateForm, ParlamentarForm, VotanteForm, diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index 345382438..67b20640e 100755 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -44,10 +44,11 @@ from sapl.protocoloadm.forms import VinculoDocAdminMateriaForm,\ from sapl.protocoloadm.models import Protocolo, DocumentoAdministrativo,\ VinculoDocAdminMateria from sapl.relatorios.views import relatorio_doc_administrativos -from sapl.utils import (create_barcode, get_base_url, get_client_ip, +from sapl.middleware.ratelimit import get_client_ip, ratelimit_ip +from sapl.utils import (create_barcode, get_base_url, get_mime_type_from_file_extension, lista_anexados, show_results_filter_set, mail_service_configured, from_date_to_datetime_utc, - google_recaptcha_configured, get_tempfile_dir, MultiFormatOutputMixin, ratelimit_ip) + google_recaptcha_configured, get_tempfile_dir, MultiFormatOutputMixin) from .forms import (AcompanhamentoDocumentoForm, AnexadoEmLoteFilterSet, AnexadoForm, AnularProtocoloAdmForm, compara_tramitacoes_doc, diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index ab30c2c6a..7540b7a8e 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -48,8 +48,9 @@ from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm, OrdemExpedien CorrespondenciaForm, CorrespondenciaEmLoteFilterSet from sapl.sessao.models import Correspondencia from sapl.settings import TIME_ZONE, RATE_LIMITER_RATE -from sapl.utils import show_results_filter_set, remover_acentos, get_client_ip, \ - MultiFormatOutputMixin, PautaMultiFormatOutputMixin, ratelimit_ip +from sapl.middleware.ratelimit import get_client_ip, ratelimit_ip +from sapl.utils import show_results_filter_set, remover_acentos, \ + MultiFormatOutputMixin, PautaMultiFormatOutputMixin from .forms import (AdicionarVariasMateriasFilterSet, AdicionarVariasMateriasForm, BancadaForm, ExpedienteForm, JustificativaAusenciaForm, OcorrenciaSessaoForm, ListMateriaForm, diff --git a/sapl/utils.py b/sapl/utils.py index 1b7ce99c0..cdfa3a96c 100644 --- a/sapl/utils.py +++ b/sapl/utils.py @@ -401,10 +401,6 @@ def xstr(s): return '' if s is None else str(s) -# Canonical implementations live in sapl.middleware.ratelimit. -# Re-exported here so existing import sites keep working unchanged. -from sapl.middleware.ratelimit import get_client_ip, ratelimit_ip # noqa: F401, E402 - def get_base_url(request): # TODO substituir por Site.objects.get_current().domain