3
V<
                 @   s   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 d dlmZ d dlmZ d dlmZ G d	d
 d
eZG dd deeZeG dd deZG dd deZdS )    )unicode_literals)	send_mail)models)AbstractBaseUserPermissionsMixin)ugettext_lazy)timezone)python_2_unicode_compatible)BaseUserManagerc               @   s   e Zd ZdddZdd ZdS )UserManagerNc             K   s:   | j |}| jf d|i|}|j| |j| jd |S )Nemail)using)Znormalize_emailmodelZset_passwordsave_db)selfr   passwordkwargsuser r   P/var/www/html/enquirykeeper_venv/lib/python3.6/site-packages/authtools/models.pycreate_user   s
    

zUserManager.create_userc             K   s*   | j f |}d|_d|_|j| jd |S )NT)r   )r   Zis_superuseris_staffr   r   )r   r   r   r   r   r   create_superuser   s
    zUserManager.create_superuser)N)__name__
__module____qualname__r   r   r   r   r   r   r      s   
r   c               @   s   e Zd ZejeddddZejeddeddZejed	ded
dZ	ej
edejdZe ZdZg ZG dd dZdd Zdd ZdddZdS )AbstractEmailUserzemail address   T)
max_lengthuniquezstaff statusFz9Designates whether the user can log into this admin site.)defaultZ	help_textZactivezeDesignates whether this user should be treated as active. Unselect this instead of deleting accounts.zdate joined)r!   r   c               @   s   e Zd ZdZdgZdS )zAbstractEmailUser.MetaTr   N)r   r   r   abstractorderingr   r   r   r   Meta,   s   r$   c             C   s   | j S )N)r   )r   r   r   r   get_full_name0   s    zAbstractEmailUser.get_full_namec             C   s   | j S )N)r   )r   r   r   r   get_short_name3   s    z AbstractEmailUser.get_short_nameNc             K   s   t |||| jgf| dS )z.
        Sends an email to this User.
        N)r   r   )r   ZsubjectmessageZ
from_emailr   r   r   r   
email_user6   s    zAbstractEmailUser.email_user)N)r   r   r   r   Z
EmailField_r   ZBooleanFieldr   Z	is_activeZDateTimeFieldr   nowZdate_joinedr   objectsZUSERNAME_FIELDREQUIRED_FIELDSr$   r%   r&   r(   r   r   r   r   r      s   r   c               @   sJ   e Zd ZejedddZdgZG dd dZdd Z	dd	 Z
d
d ZdS )AbstractNamedUsernamer   )r   c               @   s   e Zd ZdZddgZdS )zAbstractNamedUser.MetaTr.   r   N)r   r   r   r"   r#   r   r   r   r   r$   B   s   r$   c             C   s   dj | j| jdS )Nz{name} <{email}>)r.   r   )formatr.   r   )r   r   r   r   __str__F   s    zAbstractNamedUser.__str__c             C   s   | j S )N)r.   )r   r   r   r   r%   L   s    zAbstractNamedUser.get_full_namec             C   s   | j S )N)r.   )r   r   r   r   r&   O   s    z AbstractNamedUser.get_short_nameN)r   r   r   r   Z	CharFieldr)   r.   r,   r$   r0   r%   r&   r   r   r   r   r-   <   s   r-   c               @   s   e Zd ZG dd dejZdS )Userc               @   s    e Zd ZdZedZedZdS )z	User.MetaZAUTH_USER_MODELr   ZusersN)r   r   r   Z	swappabler)   Zverbose_nameZverbose_name_pluralr   r   r   r   r$   T   s   r$   N)r   r   r   r-   r$   r   r   r   r   r1   S   s   r1   N)
__future__r   Zdjango.core.mailr   Z	django.dbr   Zdjango.contrib.auth.modelsr   r   Zdjango.utils.translationr   r)   Zdjango.utilsr   Zdjango.utils.encodingr	   r
   r   r   r-   r1   r   r   r   r   <module>   s    