from rest_framework_simplejwt.authentication import JWTAuthentication

class ForceAllowFrameForMedia:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        response = self.get_response(request)

        # ✅ allow iframe for media preview
        if request.path.startswith("/media/"):
            response["X-Frame-Options"] = "ALLOWALL"

        return response
    
class JWTUserMiddleware:

    def __init__(self, get_response):
        self.get_response = get_response
        self.jwt_auth = JWTAuthentication()

    def __call__(self, request):

        try:
            user_auth_tuple = self.jwt_auth.authenticate(request)
            if user_auth_tuple is not None:
                request.user, request.auth = user_auth_tuple
        except Exception:
            pass

        response = self.get_response(request)
        return response
