# intendencia/middleware.py from django.http import HttpResponseForbidden from django.urls import reverse from django.utils import timezone from datetime import datetime from django.shortcuts import redirect class ExpirationCheckMiddleware: def __init__(self, get_response): self.get_response = get_response def __call__(self, request): # Fecha de expiración (cámbiala según necesites) expiration_date = datetime(2026, 12, 31) # AAAA, MM, DD # Permitir acceso a la página de expiración y a archivos estáticos if request.path.startswith('/static/') or request.path.startswith('/media/'): return self.get_response(request) # Si la fecha actual es posterior a la de expiración if timezone.now().date() > expiration_date.date(): # Permitir logout if request.path == reverse('logout'): return self.get_response(request) # Redirigir a la página de expiración if request.path != reverse('expired'): return redirect('expired') # Permitir acceso a superusuarios después de la expiración if request.user.is_authenticated and request.user.is_superuser: return self.get_response(request) return self.get_response(request)