import time
from django.contrib.auth import logout
from django.conf import settings
from django.contrib.sessions.models import Session
from django.db import OperationalError
from django.shortcuts import render


class AutoLogoutMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)

        # Vérifier si l'utilisateur est authentifié
        if request.user.is_authenticated:
            # Vérifier le temps d'inactivité de l'utilisateur
            if (request.session.get('last_activity') and
                    (request.session['last_activity'] + settings.SESSION_IDLE_TIMEOUT) < time.time()):
                logout(request)  # Déconnexion de l'utilisateur

            request.session['last_activity'] = time.time()  # Mettre à jour le dernier accès

        return response
