Browse Source

Não redireciona arquivos de mídia para troca de senha

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pull/3865/head
Edward Ribeiro 3 weeks ago
parent
commit
e88134e2c2
  1. 13
      sapl/base/tests/test_media.py
  2. 4
      sapl/middleware/check_password.py

13
sapl/base/tests/test_media.py

@ -263,3 +263,16 @@ def test_modelo_protegido_fora_de_private_e_public(client):
baker.make(DocumentoAdministrativo, restrito=True, texto_integral=path)
assert _get(client, path).status_code == 404
@pytest.mark.django_db(transaction=False)
def test_senha_fraca_nao_redireciona_media(client):
_login(client, 'fraca')
session = client.session
session['weak_password'] = True
session.save()
response = _get(client, 'sapl/public/casalegislativa/logotipo.png')
assert response.status_code == 200
assert response.has_header('X-Accel-Redirect')

4
sapl/middleware/check_password.py

@ -1,5 +1,6 @@
import logging
from django.conf import settings
from django.shortcuts import redirect
from django.urls import reverse
@ -14,7 +15,8 @@ class CheckWeakPasswordMiddleware:
if request.user.is_authenticated and \
request.session.get('weak_password', False) and \
request.path != reverse('sapl.base:alterar_senha') and \
request.path != reverse('sapl.base:logout'):
request.path != reverse('sapl.base:logout') and \
not request.path.startswith(settings.MEDIA_URL):
logging.warning(f"Usuário {request.user.username} possui senha fraca.")
return redirect('sapl.base:alterar_senha')

Loading…
Cancel
Save