U
    cc                     @   sR   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 dZd	S )
    )models)EmptyManager)cached_property   )CallableFalseCallableTrue)api_settingsc                   @   s  e Zd ZdZdZeejZeej	Z
dd Zdd Zedd Zed	d
 Zedd Zedd Zedd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zedd  Zed!d" Zd6d$d%Zd7d&d'Zd8d(d)Zd9d*d+Z d,d- Z!ed.d/ Z"ed0d1 Z#d2d3 Z$d4d5 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                 C   s
   || _ d S N)token)selfr    r   Y/var/www/html/project/venv/lib/python3.8/site-packages/rest_framework_simplejwt/models.py__init__   s    zTokenUser.__init__c                 C   s   d| j  S )Nz
TokenUser idr   r   r   r   __str__   s    zTokenUser.__str__c                 C   s   | j tj S r
   )r   r   ZUSER_ID_CLAIMr   r   r   r   r       s    zTokenUser.idc                 C   s   | j S r
   r   r   r   r   r   pk$   s    zTokenUser.pkc                 C   s   | j ddS )Nusername r   getr   r   r   r   r   (   s    zTokenUser.usernamec                 C   s   | j ddS )Nis_staffFr   r   r   r   r   r   ,   s    zTokenUser.is_staffc                 C   s   | j ddS )Nis_superuserFr   r   r   r   r   r   0   s    zTokenUser.is_superuserc                 C   s   | j |j kS r
   r   r   otherr   r   r   __eq__4   s    zTokenUser.__eq__c                 C   s   |  | S r
   )r   r   r   r   r   __ne__7   s    zTokenUser.__ne__c                 C   s
   t | jS r
   )hashr   r   r   r   r   __hash__:   s    zTokenUser.__hash__c                 C   s   t dd S Nz%Token users have no DB representationNotImplementedErrorr   r   r   r   save=   s    zTokenUser.savec                 C   s   t dd S r!   r"   r   r   r   r   delete@   s    zTokenUser.deletec                 C   s   t dd S r!   r"   r   Zraw_passwordr   r   r   set_passwordC   s    zTokenUser.set_passwordc                 C   s   t dd S r!   r"   r&   r   r   r   check_passwordF   s    zTokenUser.check_passwordc                 C   s   | j S r
   )_groupsr   r   r   r   groupsI   s    zTokenUser.groupsc                 C   s   | j S r
   )_user_permissionsr   r   r   r   user_permissionsM   s    zTokenUser.user_permissionsNc                 C   s   t  S r
   setr   objr   r   r   get_group_permissionsQ   s    zTokenUser.get_group_permissionsc                 C   s   t  S r
   r-   r/   r   r   r   get_all_permissionsT   s    zTokenUser.get_all_permissionsc                 C   s   dS NFr   )r   permr0   r   r   r   has_permW   s    zTokenUser.has_permc                 C   s   dS r3   r   )r   Z	perm_listr0   r   r   r   	has_permsZ   s    zTokenUser.has_permsc                 C   s   dS r3   r   )r   moduler   r   r   has_module_perms]   s    zTokenUser.has_module_permsc                 C   s   t S r
   )r   r   r   r   r   is_anonymous`   s    zTokenUser.is_anonymousc                 C   s   t S r
   )r   r   r   r   r   is_authenticatedd   s    zTokenUser.is_authenticatedc                 C   s   | j S r
   )r   r   r   r   r   get_usernameh   s    zTokenUser.get_usernamec                 C   s   | j |dS )zVThis acts as a backup attribute getter for custom claims defined in Token serializers.Nr   )r   attrr   r   r   __getattr__k   s    zTokenUser.__getattr__)N)N)N)N)&__name__
__module____qualname____doc__	is_activer   auth_modelsGroupr)   Z
Permissionr+   r   r   r   r   r   r   r   r   r   r   r    r$   r%   r'   r(   propertyr*   r,   r1   r2   r5   r6   r8   r9   r:   r;   r=   r   r   r   r   r	   	   sL   














r	   N)Zdjango.contrib.authr   rC   Zdjango.db.models.managerr   Zdjango.utils.functionalr   compatr   r   settingsr   r	   r   r   r   r   <module>   s
   