o
    ã¨;i¯  ã                   @   sj   d dl 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	„ d	ƒZd
S )é    )ÚTYPE_CHECKINGÚAnyÚOptionalÚUnion)Úmodels)ÚEmptyManager)Úcached_propertyé   )Úapi_settings)ÚTokenc                   @   sò  e Zd ZdZdZeejƒZeej	ƒZ
d@dd„Zdefd	d
„Zedefdd„ƒZedefdd„ƒZedefdd„ƒZedefdd„ƒZedefdd„ƒZdedefdd„Zdedefdd„Zdefdd„ZdAdd„ZdAdd„Zd eddfd!d"„Zd eddfd#d$„Zedejfd%d&„ƒZedej	fd'd(„ƒZ dBd)e!e de"fd*d+„Z#dBd)e!e de"fd,d-„Z$dBd.ed)e!e defd/d0„Z%dBd1e&e d)e!e defd2d3„Z'd4edefd5d6„Z(edefd7d8„ƒZ)edefd9d:„ƒZ*defd;d<„Z+d=ede!e, fd>d?„Z-dS )CÚ	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                 C   s
   || _ d S ©N)r   )Úselfr   © r   ú_/var/www/html/premium_crap/venv/lib/python3.10/site-packages/rest_framework_simplejwt/models.pyÚ__init__   ó   
zTokenUser.__init__c                 C   s   d| j › �S )Nz
TokenUser ©Úid©r   r   r   r   Ú__str__!   ó   zTokenUser.__str__c                 C   s   | j tj S r   )r   r
   ÚUSER_ID_CLAIMr   r   r   r   r   $   s   zTokenUser.idc                 C   ó   | j S r   r   r   r   r   r   Úpk(   ó   zTokenUser.pkc                 C   ó   | j  dd¡S )NÚusernameÚ ©r   Úgetr   r   r   r   r   ,   ó   zTokenUser.usernamec                 C   r   )NÚis_staffFr!   r   r   r   r   r$   0   r#   zTokenUser.is_staffc                 C   r   )NÚis_superuserFr!   r   r   r   r   r%   4   r#   zTokenUser.is_superuserÚotherc                 C   s   t |tƒstS | j|jkS r   )Ú
isinstancer   ÚNotImplementedr   ©r   r&   r   r   r   Ú__eq__8   s   
zTokenUser.__eq__c                 C   s   |   |¡ S r   )r*   r)   r   r   r   Ú__ne__=   r   zTokenUser.__ne__c                 C   s
   t | jƒS r   )Úhashr   r   r   r   r   Ú__hash__@   r   zTokenUser.__hash__c                 C   ó   t dƒ‚©Nz%Token users have no DB representation©ÚNotImplementedErrorr   r   r   r   ÚsaveC   ó   zTokenUser.savec                 C   r.   r/   r0   r   r   r   r   ÚdeleteF   r3   zTokenUser.deleteÚraw_passwordc                 C   r.   r/   r0   ©r   r5   r   r   r   Úset_passwordI   r3   zTokenUser.set_passwordc                 C   r.   r/   r0   r6   r   r   r   Úcheck_passwordL   r3   zTokenUser.check_passwordc                 C   r   r   )Ú_groupsr   r   r   r   ÚgroupsO   r   zTokenUser.groupsc                 C   r   r   )Ú_user_permissionsr   r   r   r   Úuser_permissionsS   r   zTokenUser.user_permissionsÚobjc                 C   ó   t ƒ S r   ©Úset©r   r=   r   r   r   Úget_group_permissionsW   ó   zTokenUser.get_group_permissionsc                 C   r>   r   r?   rA   r   r   r   Úget_all_permissionsZ   rC   zTokenUser.get_all_permissionsÚpermc                 C   ó   dS ©NFr   )r   rE   r=   r   r   r   Úhas_perm]   ó   zTokenUser.has_permÚ	perm_listc                 C   rF   rG   r   )r   rJ   r=   r   r   r   Ú	has_perms`   rI   zTokenUser.has_permsÚmodulec                 C   rF   rG   r   )r   rL   r   r   r   Úhas_module_permsc   rI   zTokenUser.has_module_permsc                 C   rF   rG   r   r   r   r   r   Úis_anonymousf   ó   zTokenUser.is_anonymousc                 C   rF   )NTr   r   r   r   r   Úis_authenticatedj   rO   zTokenUser.is_authenticatedc                 C   r   r   )r   r   r   r   r   Úget_usernamen   rC   zTokenUser.get_usernameÚattrc                 C   s   | j  |d¡S )zVThis acts as a backup attribute getter for custom claims defined in Token serializers.Nr!   )r   rR   r   r   r   Ú__getattr__q   r#   zTokenUser.__getattr__)r   r   r   N)r   Nr   ).Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	is_activer   Úauth_modelsÚGroupr9   Ú
Permissionr;   r   Ústrr   r   r   r   r   Úboolr$   r%   Úobjectr*   r+   Úintr-   r2   r4   r7   r8   Úpropertyr:   r<   r   r@   rB   rD   rH   ÚlistrK   rM   rN   rP   rQ   r   rS   r   r   r   r   r      sN    




 r   N)Útypingr   r   r   r   Údjango.contrib.authr   rY   Údjango.db.models.managerr   Údjango.utils.functionalr   Úsettingsr
   Útokensr   r   r   r   r   r   Ú<module>   s    