
    log                        d dl mZmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZmZ d dlmZmZ dd	lmZ dd
lmZ ddlmZmZmZmZ  ede
e          Zej        rddlm Z   G d dej!                  Z" G d dej#                  Z$ G d de$          Z% G d de$          Z& G d dej#                  Z' G d dej#                  Z( G d dej#                  Z) G d dej#                  Z*dS )    )AnyOptionalTypeVar)settings)authenticateget_user_model)AbstractBaseUserupdate_last_login)gettext_lazy)
exceptionsserializers)AuthenticationFailedValidationError   )	TokenUser)api_settings)RefreshTokenSlidingTokenTokenUntypedTokenAuthUser)BlacklistedTokenc                         e Zd Zd fdZ xZS )PasswordFieldreturnNc                     |                     di            d|d         d<   d|d<    t                      j        |i | d S )Nstylepassword
input_typeT
write_only)
setdefaultsuper__init__selfargskwargs	__class__s      _/var/www/html/nourish/venv/lib/python3.11/site-packages/rest_framework_simplejwt/serializers.pyr#   zPasswordField.__init__   sS    '2&&&(2w%#|$)&)))))    r   N)__name__
__module____qualname__r#   __classcell__r(   s   @r)   r   r      s=        * * * * * * * * * *r*   r   c                        e Zd ZU  e            j        ZdZeee	                  e
d<   d ed          iZd fdZdeeef         deeef         fdZed	ede	fd
            Z xZS )TokenObtainSerializerNtoken_classno_active_accountz2No active account found with the given credentialsr   c                      t                      j        |i | t          j        d          | j        | j        <   t                      | j        d<   d S )NTr    r   )r"   r#   r   	CharFieldfieldsusername_fieldr   r$   s      r)   r#   zTokenObtainSerializer.__init__&   sR    $)&)))+6+@D+Q+Q+QD'("///Jr*   attrsc                    | j         || j                  d|d         i}	 | j        d         |d<   n# t          $ r Y nw xY wt          di || _        t          j        | j                  s t          j        | j	        d         d          i S )Nr   requestr4    )
r9   contextKeyErrorr   userr   USER_AUTHENTICATION_RULEr   r   error_messages)r%   r:   authenticate_kwargss      r)   validatezTokenObtainSerializer.validate,   s    t':!;j)
	-1\)-D	** 	 	 	D	 !77#677	4TY?? 	1#$78#  
 	s   / 
<<r@   c                 6    | j                             |          S )N)r3   for_user)clsr@   s     r)   	get_tokenzTokenObtainSerializer.get_token@   s    ''---r*   r+   )r,   r-   r.   r   USERNAME_FIELDr9   r3   r   typer   __annotations___default_error_messagesr#   dictstrr   rD   classmethodr   rH   r/   r0   s   @r)   r2   r2      s         #^%%4N)-K$u+&--- 	QQSTT2 2 2 2 2 2d38n c3h    ( .X .% . . . [. . . . .r*   r2   c                   L     e Zd ZeZdeeef         deeef         f fdZ xZ	S )TokenObtainPairSerializerr:   r   c                    t                                          |          }|                     | j                  }t	          |          |d<   t	          |j                  |d<   t          j        rt          d | j                   |S )Nrefreshaccess)	r"   rD   rH   r@   rO   access_tokenr   UPDATE_LAST_LOGINr
   )r%   r:   datarT   r(   s       r)   rD   z"TokenObtainPairSerializer.validateH   sr    ww&&..++g,,YW122X) 	/dDI...r*   )
r,   r-   r.   r   r3   rN   rO   r   rD   r/   r0   s   @r)   rR   rR   E   s`        Kd38n c3h          r*   rR   c                   L     e Zd ZeZdeeef         deeef         f fdZ xZ	S )TokenObtainSlidingSerializerr:   r   c                     t                                          |          }|                     | j                  }t	          |          |d<   t
          j        rt          d | j                   |S Ntoken)r"   rD   rH   r@   rO   r   rW   r
   )r%   r:   rX   r]   r(   s       r)   rD   z%TokenObtainSlidingSerializer.validateY   s^    ww&&ty))E

W) 	/dDI...r*   )
r,   r-   r.   r   r3   rN   rO   r   rD   r/   r0   s   @r)   rZ   rZ   V   s`        K
d38n 
c3h 
 
 
 
 
 
 
 
 
 
r*   rZ   c                       e Zd Z ej                    Z ej        d          ZeZd e	d          iZ
deeef         deeef         fdZdS )	TokenRefreshSerializerT)	read_onlyr4   z,No active account found for the given token.r:   r   c                    |                      |d                   }|j                            t          j        d           }|r[ t                      j        j        di t          j        |ix}r/t          j        |          st          | j
        d         d          dt          |j                  i}t          j        rt          j        r&	 |                                 n# t           $ r Y nw xY w|                                 |                                 |                                 |                                 t          |          |d<   |S )NrT   r4   rU   r=   )r3   payloadgetr   USER_ID_CLAIMr   objectsUSER_ID_FIELDrA   r   rB   rO   rV   ROTATE_REFRESH_TOKENSBLACKLIST_AFTER_ROTATION	blacklistAttributeErrorset_jtiset_expset_iatoutstand)r%   r:   rT   user_idr@   rX   s         r)   rD   zTokenRefreshSerializer.validateo   so   ""5#344/%%l&@$GG 		0N$$,0  -w7  D		
  8>> *'(;<'  
 #g2334- 	+4 %%''''%    D
 OOOOOO!'llDOs   C" "
C/.C/N)r,   r-   r.   r   r7   rT   rU   r   r3   rL   rM   rN   rO   r   rD   r=   r*   r)   r_   r_   f   s        #k#%%G"["T222FK 	QQMNN"d38n "c3h " " " " " "r*   r_   c                   `    e Zd Z ej                    ZeZdee	e
f         dee	e	f         fdZdS )TokenRefreshSlidingSerializerr:   r   c                     |                      |d                   }|                    t          j                   |                                 |                                 dt          |          iS r\   )r3   	check_expr   SLIDING_TOKEN_REFRESH_EXP_CLAIMrl   rm   rO   )r%   r:   r]   s      r)   rD   z&TokenRefreshSlidingSerializer.validate   s]      w00 	DEEE 	U$$r*   N)r,   r-   r.   r   r7   r]   r   r3   rN   rO   r   rD   r=   r*   r)   rq   rq      s[        !K!##EK%d38n %c3h % % % % % %r*   rq   c                   `    e Zd Z ej        d          Zdeedf         deeef         fdZ	dS )TokenVerifySerializerTr6   r:   Nr   c                 $   t          |d                   }t          j        rndt          j        v r`|                    t          j                  }t          j        	                    |          
                                rt          d          i S )Nr]   z(rest_framework_simplejwt.token_blacklist)
token__jtizToken is blacklisted)r   r   rh   r   INSTALLED_APPSrc   	JTI_CLAIMr   re   filterexistsr   )r%   r:   r]   jtis       r)   rD   zTokenVerifySerializer.validate   s~    U7^,, 1	>:h>UUU))L233C'..#.>>EEGG >%&<===	r*   )
r,   r-   r.   r   r7   r]   rN   rO   r   rD   r=   r*   r)   rv   rv      s[        !K!T222Ed39o $sCx.      r*   rv   c                   d    e Zd Z ej        d          ZeZdee	e
f         dee
e
f         fdZdS )TokenBlacklistSerializerTr6   r:   r   c                     |                      |d                   }	 |                                 n# t          $ r Y nw xY wi S )NrT   )r3   ri   rj   )r%   r:   rT   s      r)   rD   z!TokenBlacklistSerializer.validate   sY    ""5#344	 	 	 	D		s   2 
??N)r,   r-   r.   r   r7   rT   r   r3   rN   rO   r   rD   r=   r*   r)   r   r      s`        #k#t444GKd38n c3h      r*   r   N)+typingr   r   r   django.confr   django.contrib.authr   r   django.contrib.auth.modelsr	   r
   django.utils.translationr   rL   rest_frameworkr   r   rest_framework.exceptionsr   r   modelsr   r   tokensr   r   r   r   r   rh   token_blacklist.modelsr   r7   r   
Serializerr2   rR   rZ   r_   rq   rv   r   r=   r*   r)   <module>r      s   ) ) ) ) ) ) ) ) ) )             < < < < < < < < J J J J J J J J 6 6 6 6 6 6 2 2 2 2 2 2 2 2 K K K K K K K K       " " " " " " C C C C C C C C C C C C7:/;;( 9888888* * * * *K) * * *$. $. $. $. $.K2 $. $. $.N     5   "    #8    + + + + +[3 + + +\% % % % %K$: % % %$    K2   "
 
 
 
 
{5 
 
 
 
 
r*   