
     h                     `    d dl mZ d dlmZ d dlmZ ddlmZm	Z	 ddl
mZ  G d d          Zd	S )
    )models)EmptyManager)cached_property   )CallableFalseCallableTrue)api_settingsc                      e Zd ZdZdZ eej                  Z eej	                  Z
d Zd Zed             Zed             Zed             Zed             Zed	             Zd
 Zd Zd Zd Zd Zd Zd Zed             Zed             ZddZddZddZddZ d Z!ed             Z"ed             Z#d Z$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.
    Tc                     || _         d S N)token)selfr   s     [/var/www/html/Sam_Eipo/venv/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_staff,   s    z~~j%000r   c                 8    | j                             dd          S )Nis_superuserFr   r   s    r   r$   zTokenUser.is_superuser0   s    z~~ne444r   c                 "    | j         |j         k    S r   r   r   others     r   __eq__zTokenUser.__eq__4   s    w%(""r   c                 .    |                      |           S r   )r(   r&   s     r   __ne__zTokenUser.__ne__7   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.save=       !"IJJJr   c                      t          d          r/   r0   r   s    r   deletezTokenUser.delete@   r3   r   c                      t          d          r/   r0   r   raw_passwords     r   set_passwordzTokenUser.set_passwordC   r3   r   c                      t          d          r/   r0   r7   s     r   check_passwordzTokenUser.check_passwordF   r3   r   c                     | j         S r   )_groupsr   s    r   groupszTokenUser.groupsI   s
    |r   c                     | j         S r   )_user_permissionsr   s    r   user_permissionszTokenUser.user_permissionsM   s    %%r   Nc                     t                      S r   setr   objs     r   get_group_permissionszTokenUser.get_group_permissionsQ       uur   c                     t                      S r   rC   rE   s     r   get_all_permissionszTokenUser.get_all_permissionsT   rH   r   c                     dS NF )r   permrF   s      r   has_permzTokenUser.has_permW       ur   c                     dS rL   rM   )r   	perm_listrF   s      r   	has_permszTokenUser.has_permsZ   rP   r   c                     dS rL   rM   )r   modules     r   has_module_permszTokenUser.has_module_perms]   rP   r   c                     t           S r   )r   r   s    r   is_anonymouszTokenUser.is_anonymous`   s    r   c                     t           S r   )r   r   s    r   is_authenticatedzTokenUser.is_authenticatedd   s    r   c                     | j         S r   )r   r   s    r   get_usernamezTokenUser.get_usernameh   s
    }r   c                 8    | j                             |d          S )zVThis acts as a backup attribute getter for custom claims defined in Token serializers.Nr   )r   attrs     r   __getattr__zTokenUser.__getattr__k   s    z~~dD)))r   r   )&__name__
__module____qualname____doc__	is_activer   auth_modelsGroupr=   
Permissionr@   r   r   r   r   r   r   r"   r$   r(   r*   r-   r2   r5   r9   r;   propertyr>   rA   rG   rJ   rO   rS   rV   rX   rZ   r\   r_   rM   r   r   r   r   	   sM         Il;,--G$[%;<<  & & & 6 6 _6   _ . . _. 1 1 _1 5 5 _5# # #& & &  K K KK K KK K KK K K   X & & X&                 X   X  * * * * *r   r   N)django.contrib.authr   re   django.db.models.managerr   django.utils.functionalr   compatr   r   settingsr	   r   rM   r   r   <module>rn      s    5 5 5 5 5 5 1 1 1 1 1 1 3 3 3 3 3 3 / / / / / / / / " " " " " "d* d* d* d* d* d* d* d* d* d*r   