
    kf                     |    d dl mZmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ ddlmZ erddlmZ  G d d	          Zd
S )    )TYPE_CHECKINGAnyListOptionalUnion)models)EmptyManager)cached_property   )api_settings)Tokenc                      e Zd ZdZdZ eej                  Z eej	                  Z
d'dZdefdZedeeef         fd	            Zedeeef         fd
            Zedefd            Zedefd            Zedefd            ZdedefdZdedefdZdefdZd(dZd(dZdeddfdZdeddfdZedej        fd            Z edej	        fd            Z!d)de"e         de#fdZ$d)de"e         de#fdZ%d)dede"e         defdZ&d)de'e         de"e         defdZ(d edefd!Z)edefd"            Z*edefd#            Z+defd$Z,d%ede"e-         fd&Z.dS )*	TokenUsera  
    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tokenr   returnNc                     || _         d S N)r   )selfr   s     _/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/rest_framework_simplejwt/models.py__init__zTokenUser.__init__   s    


    c                     d| j          S )Nz
TokenUser idr   s    r   __str__zTokenUser.__str__!   s    %DG%%%r   c                 0    | j         t          j                 S r   )r   r   USER_ID_CLAIMr   s    r   r   zTokenUser.id$   s    z,455r   c                     | j         S r   r   r   s    r   pkzTokenUser.pk(   s	    wr   c                 8    | j                             dd          S )Nusername r   getr   s    r   r"   zTokenUser.username,   s    z~~j"---r   c                 8    | j                             dd          S )Nis_staffFr$   r   s    r   r'   zTokenUser.is_staff0   s    z~~j%000r   c                 8    | j                             dd          S )Nis_superuserFr$   r   s    r   r)   zTokenUser.is_superuser4   s    z~~ne444r   otherc                 Z    t          |t                    st          S | j        |j        k    S r   )
isinstancer   NotImplementedr   r   r*   s     r   __eq__zTokenUser.__eq__8   s)    %++ 	"!!w%(""r   c                 .    |                      |           S r   )r/   r.   s     r   __ne__zTokenUser.__ne__=   s    ;;u%%%%r   c                 *    t          | j                  S r   )hashr   r   s    r   __hash__zTokenUser.__hash__@   s    DG}}r   c                      t          d          Nz%Token users have no DB representationNotImplementedErrorr   s    r   savezTokenUser.saveC       !"IJJJr   c                      t          d          r6   r7   r   s    r   deletezTokenUser.deleteF   r:   r   raw_passwordc                      t          d          r6   r7   r   r=   s     r   set_passwordzTokenUser.set_passwordI   r:   r   c                      t          d          r6   r7   r?   s     r   check_passwordzTokenUser.check_passwordL   r:   r   c                     | j         S r   )_groupsr   s    r   groupszTokenUser.groupsO   s
    |r   c                     | j         S r   )_user_permissionsr   s    r   user_permissionszTokenUser.user_permissionsS   s    %%r   objc                     t                      S r   setr   rI   s     r   get_group_permissionszTokenUser.get_group_permissionsW       uur   c                     t                      S r   rK   rM   s     r   get_all_permissionszTokenUser.get_all_permissionsZ   rO   r   permc                     dS NF )r   rR   rI   s      r   has_permzTokenUser.has_perm]       ur   	perm_listc                     dS rT   rU   )r   rX   rI   s      r   	has_permszTokenUser.has_perms`   rW   r   modulec                     dS rT   rU   )r   r[   s     r   has_module_permszTokenUser.has_module_permsc   rW   r   c                     dS rT   rU   r   s    r   is_anonymouszTokenUser.is_anonymousf   s    ur   c                     dS )NTrU   r   s    r   is_authenticatedzTokenUser.is_authenticatedj   s    tr   c                     | j         S r   )r"   r   s    r   get_usernamezTokenUser.get_usernamen   s
    }r   attrc                 8    | j                             |d          S )zVThis acts as a backup attribute getter for custom claims defined in Token serializers.Nr$   )r   rd   s     r   __getattr__zTokenUser.__getattr__q   s    z~~dD)))r   )r   r   r   N)r   Nr   )/__name__
__module____qualname____doc__	is_activer	   auth_modelsGrouprD   
PermissionrG   r   strr   r
   r   intr   r    r"   boolr'   r)   objectr/   r1   r4   r9   r<   r@   rB   propertyrE   rH   r   rL   rN   rQ   rV   r   rZ   r]   r_   ra   rc   r   rf   rU   r   r   r   r      s         Il;,--G$[%;<<   & & & & & 6E#s(O 6 6 6 _6 E#s(O    _ .# . . . _. 1$ 1 1 1 _1 5d 5 5 5 _5#F #t # # # #
&F &t & & & &#    K K K KK K K KK K K K K KK3 K4 K K K K )    X &+"8 & & & X& &)9 S     x'7 3     S x'7 4     49 8F3C t    s t     d    X $    Xc    * * * * * * * *r   r   N)typingr   r   r   r   r   django.contrib.authr   rl   django.db.models.managerr	   django.utils.functionalr
   settingsr   tokensr   r   rU   r   r   <module>rz      s    < < < < < < < < < < < < < < 5 5 5 5 5 5 1 1 1 1 1 1 3 3 3 3 3 3 " " " " " " f* f* f* f* f* f* f* f* f* f*r   