
    kfH                        d dl mZmZ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 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DictOptionalTypeTypeVar)settings)authenticateget_user_model)AbstractBaseUserupdate_last_login)gettext_lazy)
exceptionsserializers)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      d/var/www/html/nettyfy-visnx/env/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   requestr5    )
r:   contextKeyErrorr	   userr   USER_AUTHENTICATION_RULEr   AuthenticationFailed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   / 
<<rA   c                 6    | j                             |          S )N)r4   for_user)clsrA   s     r*   	get_tokenzTokenObtainSerializer.get_token@   s    ''---r+   r,   )r-   r.   r/   r
   USERNAME_FIELDr:   r4   r   r   r   __annotations___default_error_messagesr$   r   strr   rF   classmethodr   rJ   r0   r1   s   @r*   r3   r3      s         #^%%4N)-K$u+&--- 	QQSTT2 2 2 2 2 2d38n c3h    ( .X .% . . . [. . . . .r+   r3   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#   rF   rJ   rA   rO   access_tokenr   UPDATE_LAST_LOGINr   )r&   r;   datarU   r)   s       r*   rF   z"TokenObtainPairSerializer.validateH   sr    ww&&..++g,,YW122X) 	/dDI...r+   )
r-   r.   r/   r   r4   r   rO   r   rF   r0   r1   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#   rF   rJ   rA   rO   r   rX   r   )r&   r;   rY   r^   r)   s       r*   rF   z%TokenObtainSlidingSerializer.validateY   s^    ww&&ty))E

W) 	/dDI...r+   )
r-   r.   r/   r   r4   r   rO   r   rF   r0   r1   s   @r*   r[   r[   V   s`        K
d38n 
c3h 
 
 
 
 
 
 
 
 
 
r+   r[   c                       e Zd Z ej                    Z ej        d          ZeZde	e
ef         de	e
e
f         fdZdS )TokenRefreshSerializerT)	read_onlyr;   r   c                    |                      |d                   }dt          |j                  i}t          j        rt          j        r&	 |                                 n# t          $ r Y nw xY w|                                 |	                                 |
                                 t          |          |d<   |S rT   )r4   rO   rW   r   ROTATE_REFRESH_TOKENSBLACKLIST_AFTER_ROTATION	blacklistAttributeErrorset_jtiset_expset_iat)r&   r;   rU   rY   s       r*   rF   zTokenRefreshSerializer.validatek   s    ""5#344#g2334- 	+4 %%''''%    D
 OOOOOO!'llDOs   A   
A-,A-N)r-   r.   r/   r   r8   rU   rV   r   r4   r   rO   r   rF   r>   r+   r*   r`   r`   f   sp        #k#%%G"["T222FK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]   )r4   	check_expr   SLIDING_TOKEN_REFRESH_EXP_CLAIMrh   ri   rO   )r&   r;   r^   s      r*   rF   z&TokenRefreshSlidingSerializer.validate   s]      w00 	DEEE 	U$$r+   N)r-   r.   r/   r   r8   r^   r   r4   r   rO   r   rF   r>   r+   r*   rk   rk      s[        !K!##EK%d38n %c3h % % % % % %r+   rk   c                   `    e Zd Z ej        d          Zdeedf         deeef         fdZ	dS )TokenVerifySerializerTr7   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   rd   r   INSTALLED_APPSget	JTI_CLAIMr   objectsfilterexistsr   )r&   r;   r^   jtis       r*   rF   zTokenVerifySerializer.validate   s~    U7^,, 1	>:h>UUU))L233C'..#.>>EEGG >%&<===	r+   )
r-   r.   r/   r   r8   r^   r   rO   r   rF   r>   r+   r*   rp   rp      s[        !K!T222Ed39o $sCx.      r+   rp   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 )TokenBlacklistSerializerTr7   r;   r   c                     |                      |d                   }	 |                                 n# t          $ r Y nw xY wi S )NrU   )r4   re   rf   )r&   r;   rU   s      r*   rF   z!TokenBlacklistSerializer.validate   sY    ""5#344	 	 	 	D		s   2 
??N)r-   r.   r/   r   r8   rU   r   r4   r   rO   r   rF   r>   r+   r*   r{   r{      s`        #k#t444GKd38n c3h      r+   r{   N),typingr   r   r   r   r   django.confr   django.contrib.authr	   r
   django.contrib.auth.modelsr   r   django.utils.translationr   rM   rest_frameworkr   r   rest_framework.exceptionsr   modelsr   r   tokensr   r   r   r   r   rd   token_blacklist.modelsr   r8   r   
Serializerr3   rR   r[   r`   rk   rp   r{   r>   r+   r*   <module>r      s   5 5 5 5 5 5 5 5 5 5 5 5 5 5             < < < < < < < < J J J J J J J J 6 6 6 6 6 6 2 2 2 2 2 2 2 2 5 5 5 5 5 5       " " " " " " 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+   