Browse Source

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 <noreply@anthropic.com>
rate-limiter-2026
Edward Ribeiro 3 weeks ago
parent
commit
4eeea48bf9
  1. 3
      sapl/comissoes/views.py
  2. 3
      sapl/crud/base.py
  3. 5
      sapl/norma/views.py
  4. 3
      sapl/painel/views.py
  5. 3
      sapl/parlamentares/views.py
  6. 5
      sapl/protocoloadm/views.py
  7. 5
      sapl/sessao/views.py
  8. 4
      sapl/utils.py

3
sapl/comissoes/views.py

@ -28,7 +28,8 @@ from sapl.crud.base import (Crud, CrudAux, MasterDetailCrud,
RP_LIST) RP_LIST)
from sapl.materia.models import (MateriaEmTramitacao, MateriaLegislativa, from sapl.materia.models import (MateriaEmTramitacao, MateriaLegislativa,
PautaReuniao, Tramitacao) 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, from .models import (CargoComissao, Comissao, Composicao, DocumentoAcessorio,
Participacao, Periodo, Reuniao, TipoComissao) Participacao, Periodo, Reuniao, TipoComissao)

3
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, from sapl.rules import (RP_ADD, RP_CHANGE, RP_DELETE, RP_DETAIL,
RP_LIST) RP_LIST)
from sapl.settings import RATE_LIMITER_RATE 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 ratelimit.decorators import ratelimit
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator

5
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, from sapl.crud.base import (RP_DETAIL, RP_LIST, Crud, CrudAux,
MasterDetailCrud, make_pagination) MasterDetailCrud, make_pagination)
from sapl.materia.models import Orgao from sapl.materia.models import Orgao
from sapl.utils import show_results_filter_set, get_client_ip, \ from sapl.middleware.ratelimit import get_client_ip, ratelimit_ip
sapn_is_enabled, MultiFormatOutputMixin, ratelimit_ip from sapl.utils import show_results_filter_set, \
sapn_is_enabled, MultiFormatOutputMixin
from .forms import (AnexoNormaJuridicaForm, NormaFilterSet, NormaJuridicaForm, from .forms import (AnexoNormaJuridicaForm, NormaFilterSet, NormaJuridicaForm,
NormaPesquisaSimplesForm, NormaRelacionadaForm, NormaPesquisaSimplesForm, NormaRelacionadaForm,

3
sapl/painel/views.py

@ -23,7 +23,8 @@ from sapl.sessao.models import (ExpedienteMateria, OradorExpediente, OrdemDia,
PresencaOrdemDia, RegistroVotacao, PresencaOrdemDia, RegistroVotacao,
SessaoPlenaria, SessaoPlenariaPresenca, SessaoPlenaria, SessaoPlenariaPresenca,
VotoParlamentar, RegistroLeitura) 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 from .models import Cronometro

3
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.norma.models import AutoriaNorma, NormaJuridica
from sapl.parlamentares.apps import AppConfig from sapl.parlamentares.apps import AppConfig
from sapl.rules import SAPL_GROUP_VOTANTE 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, from .forms import (ColigacaoFilterSet, FiliacaoForm, FrenteForm, LegislaturaForm, MandatoForm,
ParlamentarCreateForm, ParlamentarForm, VotanteForm, ParlamentarCreateForm, ParlamentarForm, VotanteForm,

5
sapl/protocoloadm/views.py

@ -44,10 +44,11 @@ from sapl.protocoloadm.forms import VinculoDocAdminMateriaForm,\
from sapl.protocoloadm.models import Protocolo, DocumentoAdministrativo,\ from sapl.protocoloadm.models import Protocolo, DocumentoAdministrativo,\
VinculoDocAdminMateria VinculoDocAdminMateria
from sapl.relatorios.views import relatorio_doc_administrativos 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, get_mime_type_from_file_extension, lista_anexados,
show_results_filter_set, mail_service_configured, from_date_to_datetime_utc, 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, from .forms import (AcompanhamentoDocumentoForm, AnexadoEmLoteFilterSet, AnexadoForm,
AnularProtocoloAdmForm, compara_tramitacoes_doc, AnularProtocoloAdmForm, compara_tramitacoes_doc,

5
sapl/sessao/views.py

@ -48,8 +48,9 @@ from sapl.sessao.forms import ExpedienteMateriaForm, OrdemDiaForm, OrdemExpedien
CorrespondenciaForm, CorrespondenciaEmLoteFilterSet CorrespondenciaForm, CorrespondenciaEmLoteFilterSet
from sapl.sessao.models import Correspondencia from sapl.sessao.models import Correspondencia
from sapl.settings import TIME_ZONE, RATE_LIMITER_RATE from sapl.settings import TIME_ZONE, RATE_LIMITER_RATE
from sapl.utils import show_results_filter_set, remover_acentos, get_client_ip, \ from sapl.middleware.ratelimit import get_client_ip, ratelimit_ip
MultiFormatOutputMixin, PautaMultiFormatOutputMixin, ratelimit_ip from sapl.utils import show_results_filter_set, remover_acentos, \
MultiFormatOutputMixin, PautaMultiFormatOutputMixin
from .forms import (AdicionarVariasMateriasFilterSet, AdicionarVariasMateriasForm, BancadaForm, from .forms import (AdicionarVariasMateriasFilterSet, AdicionarVariasMateriasForm, BancadaForm,
ExpedienteForm, JustificativaAusenciaForm, OcorrenciaSessaoForm, ListMateriaForm, ExpedienteForm, JustificativaAusenciaForm, OcorrenciaSessaoForm, ListMateriaForm,

4
sapl/utils.py

@ -401,10 +401,6 @@ def xstr(s):
return '' if s is None else str(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): def get_base_url(request):
# TODO substituir por Site.objects.get_current().domain # TODO substituir por Site.objects.get_current().domain

Loading…
Cancel
Save