
    	]j                     v    d dl Z d dlmZ d dlmZ d dlmZ  e j                  e      Z	 e       Z
 G d d      Zy)    N)get_user_model)JsonResponsestatusc                       e Zd Zd Zd Zy)JWTAuthenticationMiddlewarec                     || _         y )N)get_response)selfr
   s     J/root/env/lib/python3.12/site-packages/label_studio/jwt_auth/middleware.py__init__z$JWTAuthenticationMiddleware.__init__   s
    (    c                 2   ddl m} ddlm} ddlm}m}m} 	  |       j                  |      }|rgt        j                  j                  |d   j                        } |d|      }	|	r.|j                  j                  j                  r||_        d|_        | j1                  |      S # t        j$                  $ r5 t&        j)                  d	       t+        d
dit,        j.                        cY S |||f$ r }
t&        j)                  d|
       Y d }
~
zd }
~
ww xY w)Nr   )flag_set)JWTAuthentication)AuthenticationFailedInvalidToken
TokenError)pk8fflag__feature_develop__prompts__dia_1829_jwt_token_auth)userTz0JWT authentication failed: User no longer existsdetailzUser not foundr   zJWT authentication failed: %s)core.feature_flagsr   'rest_framework_simplejwt.authenticationr   #rest_framework_simplejwt.exceptionsr   r   r   authenticateUserobjectsgetr   active_organizationjwtapi_tokens_enabledr   is_jwtDoesNotExistloggerinfor   r   HTTP_401_UNAUTHORIZEDr
   )r   requestr   r   r   r   r   user_and_tokenr   JWT_ACCESS_TOKEN_ENABLEDes              r   __call__z$JWTAuthenticationMiddleware.__call__   s    /Mff	<.0==gFN||''>!+<+?+?'@+3NUY,( ,0H0H0L0L0_0_#'GL%)GN   ))    	cKKJK+; <VEaEabb$lJ? 	<KK7;;	<s   A?B( (AD/D6DDN)__name__
__module____qualname__r   r,    r   r   r   r      s    )*r   r   )loggingdjango.contrib.authr   django.httpr   rest_frameworkr   	getLoggerr-   r%   r   r   r0   r   r   <module>r6      s5     . $ !			8	$* *r   