33 lines
1.3 KiB
Python

# 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)