U
    >i.	                     @   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 edd	d
ZedddZddddZeedddZdaedddZed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pkZvalue_to_stringuser r   D/tmp/pip-unpacked-wheel-upujnpc2/allauth/account/internal/userkit.pyuser_id_to_str   s    r   valuec                 C   s   t  jj| S r
   )r   r   r   Z	to_pythonr   r   r   r   str_to_user_id   s    r   F)commitc                G   s   |sdS t  }z|j|}|j}W n( tk
rL   t| |sDY dS d}Y nX |r|d }|rl|d| }n|dkr~|js~d}t| || |r| j|gd n
t	| |S dS )zR
    Gets or sets (optional) user model fields. No-op if fields do not exist.
    Nr    )Zupdate_fields)
r   r   	get_field
max_lengthr   hasattrnullsetattrsavegetattr)r   fieldr   argsZUserZ
field_metar   vr   r   r   
user_field   s(    


r!   )r   r	   c                 C   s
   | j d k	S r
   )Z
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   Zverbose_name)r   retr   r   r   default_user_display7   s    r%   c                 C   s    t sttdt}t|a t | S )NZACCOUNT_USER_DISPLAY)_user_display_callabler   r   r%   r   )r   fr   r   r   user_display>   s    r(   c                G   s2   |r t js |d r |d  g}t| t jf| S )Nr   )r   ZPRESERVE_USERNAME_CASINGlowerr!   r#   )r   r   r   r   r   r   user_usernameF   s    r*   c                G   sB   |r|d r|d   g}t| tjf|d|i}|r>|  }|S )Nr   r   )r)   r!   r   ZUSER_MODEL_EMAIL_FIELD)r   r   r   r$   r   r   r   
user_emailL   s    r+   )Zdjango.confr   Zdjango.contrib.authr   Zdjango.contrib.auth.modelsr   Zdjango.core.exceptionsr   Zdjango.utils.encodingr   Zallauth.accountr   Zallauth.utilsr   strr   r   r!   boolr"   r&   r%   r(   r*   r+   r   r   r   r   <module>   s   