
    -h                     z    S SK JrJrJrJr  S SKJr  S SKJ	r	  S SK
Jr  SSKJr  \(       a  SSKJr   " S S	5      rg
)    )TYPE_CHECKINGAnyOptionalUnion)models)EmptyManager)cached_property   )api_settings)Tokenc                      \ rS rSrSrSr\" \R                  5      r	\" \R                  5      rS'S jrS\4S jr\S\4S j5       r\S\4S	 j5       r\S\4S
 j5       r\S\4S j5       r\S\4S j5       rS\S\4S jrS\S\4S jrS\4S jrS(S jrS(S jrS\SS4S jrS\SS4S jr\S\R                  4S j5       r \S\R                  4S j5       r!S)S\"\   S\#4S jjr$S)S\"\   S\#4S jjr%S)S\S\"\   S\4S jjr&S)S\'\   S\"\   S\4S jjr(S\S\4S  jr)\S\4S! j5       r*\S\4S" j5       r+S\4S# jr,S$\S\"\-   4S% jr.S&r/g)*	TokenUser   a  
A dummy user class modeled after django.contrib.auth.models.AnonymousUser.
Used in conjunction with the `JWTStatelessUserAuthentication` backend to
implement single sign-on functionality across services which share the same
secret key.  `JWTStatelessUserAuthentication` will return an instance of this
class instead of a `User` model instance.  Instances of this class act as
stateless user objects which are backed by validated tokens.
TreturnNc                     Xl         g Ntoken)selfr   s     Z/var/www/html/Ai_home/venv/lib/python3.13/site-packages/rest_framework_simplejwt/models.py__init__TokenUser.__init__   s    
    c                      SU R                    3$ )Nz
TokenUser idr   s    r   __str__TokenUser.__str__!   s    DGG9%%r   c                 <    U R                   [        R                     $ r   )r   r   USER_ID_CLAIMr   s    r   r   TokenUser.id$   s    zz,4455r   c                     U R                   $ r   r   r   s    r   pkTokenUser.pk(   s    wwr   c                 :    U R                   R                  SS5      $ )Nusername r   getr   s    r   r'   TokenUser.username,   s    zz~~j"--r   c                 :    U R                   R                  SS5      $ )Nis_staffFr)   r   s    r   r-   TokenUser.is_staff0   s    zz~~j%00r   c                 :    U R                   R                  SS5      $ )Nis_superuserFr)   r   s    r   r0   TokenUser.is_superuser4   s    zz~~ne44r   otherc                 j    [        U[        5      (       d  [        $ U R                  UR                  :H  $ r   )
isinstancer   NotImplementedr   r   r2   s     r   __eq__TokenUser.__eq__8   s(    %++!!ww%((""r   c                 .    U R                  U5      (       + $ r   )r7   r6   s     r   __ne__TokenUser.__ne__=   s    ;;u%%%r   c                 ,    [        U R                  5      $ r   )hashr   r   s    r   __hash__TokenUser.__hash__@   s    DGG}r   c                     [        S5      eNz%Token users have no DB representationNotImplementedErrorr   s    r   saveTokenUser.saveC       !"IJJr   c                     [        S5      erA   rB   r   s    r   deleteTokenUser.deleteF   rF   r   raw_passwordc                     [        S5      erA   rB   r   rJ   s     r   set_passwordTokenUser.set_passwordI   rF   r   c                     [        S5      erA   rB   rL   s     r   check_passwordTokenUser.check_passwordL   rF   r   c                     U R                   $ r   )_groupsr   s    r   groupsTokenUser.groupsO   s    ||r   c                     U R                   $ r   )_user_permissionsr   s    r   user_permissionsTokenUser.user_permissionsS   s    %%%r   objc                     [        5       $ r   setr   rZ   s     r   get_group_permissionsTokenUser.get_group_permissionsW   	    ur   c                     [        5       $ r   r\   r^   s     r   get_all_permissionsTokenUser.get_all_permissionsZ   ra   r   permc                     gNF )r   re   rZ   s      r   has_permTokenUser.has_perm]       r   	perm_listc                     grg   rh   )r   rl   rZ   s      r   	has_permsTokenUser.has_perms`   rk   r   modulec                     grg   rh   )r   rp   s     r   has_module_permsTokenUser.has_module_permsc   rk   r   c                     grg   rh   r   s    r   is_anonymousTokenUser.is_anonymousf   s    r   c                     g)NTrh   r   s    r   is_authenticatedTokenUser.is_authenticatedj   s    r   c                     U R                   $ r   )r'   r   s    r   get_usernameTokenUser.get_usernamen   s    }}r   attrc                 :    U R                   R                  US5      $ )zVThis acts as a backup attribute getter for custom claims defined in Token serializers.Nr)   )r   r}   s     r   __getattr__TokenUser.__getattr__q   s    zz~~dD))r   r   )r   r   r   N)r   Nr   )0__name__
__module____qualname____firstlineno____doc__	is_activer   auth_modelsGrouprS   
PermissionrW   r   strr   r	   r   r$   r'   boolr-   r0   objectr7   r:   intr>   rD   rH   rM   rP   propertyrT   rX   r   r]   r_   rc   ri   listrn   rr   ru   rx   r{   r   r   __static_attributes__rh   r   r   r   r      sQ    I;,,-G$[%;%;<& & 6C 6 6 C   .# . . 1$ 1 1 5d 5 5#F #t #
&F &t &# KKK K KK3 K4 K ))   &+"8"8 & &&)9 S x'7 3 S x'7 4 49 8F3C t s t  d   $  c * * *r   r   N)typingr   r   r   r   django.contrib.authr   r   django.db.models.managerr   django.utils.functionalr	   settingsr   tokensr   r   rh   r   r   <module>r      s)    6 6 5 1 3 "f* f*r   