o
    &zh.	                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ defd	d
ZdefddZddddZdedefddZdadefddZdefddZddddZddddZdS )    )settings)get_user_model)AbstractBaseUser)FieldDoesNotExist)	force_str)app_settings)import_callablereturnc                 C   s   | j j| S N)_metapkvalue_to_stringuser r   [/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/account/internal/userkit.pyuser_id_to_str   s   r   valuec                 C   s   t  jj| S r
   )r   r   r   	to_python)r   r   r   r   str_to_user_id   s   r   F)commitc                G   s   |sdS t  }z|j|}|j}W n ty%   t| |s!Y dS d}Y nw |rQ|d }|r5|d| }n	|du r>|js>d}t| || |rO| j|gd dS dS t	| |S )zR
    Gets or sets (optional) user model fields. No-op if fields do not exist.
    Nr    )update_fields)
r   r   	get_field
max_lengthr   hasattrnullsetattrsavegetattr)r   fieldr   argsUser
field_metar   vr   r   r   
user_field   s,   


r%   r   c                 C   s
   | j d uS r
   )
last_loginr   r   r   r   did_user_login0   s   
r'   Nc                 C   s*   d}t jrt| t j}|pt| p| jjS )Nr   )r   USER_MODEL_USERNAME_FIELDr   r   r   verbose_name)r   retr   r   r   default_user_display7   s   r+   c                 C   s    t sttdt}t|a t | S )NACCOUNT_USER_DISPLAY)_user_display_callabler   r   r+   r   )r   fr   r   r   user_display>   s   r/   c                G   s4   |rt js|d r|d  g}t| t jg|R  S )Nr   )r   PRESERVE_USERNAME_CASINGlowerr%   r(   )r   r   r!   r   r   r   user_usernameF   s   r2   c                G   sD   |r|d r|d   g}t| tjg|R d|i}|r |  }|S )Nr   r   )r1   r%   r   USER_MODEL_EMAIL_FIELD)r   r   r!   r*   r   r   r   
user_emailL   s   r4   )django.confr   django.contrib.authr   django.contrib.auth.modelsr   django.core.exceptionsr   django.utils.encodingr   allauth.accountr   allauth.utilsr   strr   r   r%   boolr'   r-   r+   r/   r2   r4   r   r   r   r   <module>   s     