from django.shortcuts import redirect
from django.conf import settings

class LoginRequiredMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):

        # Allow login & logout pages
        if request.path.startswith(settings.LOGIN_URL):
            return self.get_response(request)

        # Allow admin, static, media
        if request.path.startswith('/admin/') \
           or request.path.startswith('/static/') \
           or request.path.startswith('/media/'):
            return self.get_response(request)

        # Redirect unauthenticated users
        if not request.user.is_authenticated:
            return redirect(settings.LOGIN_URL)

        return self.get_response(request)
