U
    .h	                     @   s    d dl mZ G dd deZdS )    )BaseUserManagerc                   @   s$   e Zd ZdZdddZdddZdS )	UserManagerz=
    Custom user manager for email-based authentication.
    Nc                 K   s   |st d| |}| jf d|i|}|| |j| jd z<ddlm}m} |j	j
ddd }|r||j	j||d W n tk
r   Y nX |S )	NzThe Email field must be setemail)usingr   RoleUserRoleT)
is_default	is_activeuserrole)
ValueErrornormalize_emailmodelset_passwordsave_dbapps.accounts.modelsr   r   objectsfilterfirstcreateImportError)selfr   passwordextra_fieldsr   r   r   Zdefault_role r   1/var/www/html/Focus/src/apps/accounts/managers.pycreate_user   s    

zUserManager.create_userc           
      K   s   | dd | dd | dd | dd |ddk	rFtd|ddk	r\td| j||f|}zfdd	lm} dd
lm}m} |j	j
dddddddd\}}	|	r|j|j	  |j	j
||d W n tk
r   Y nX |S )Nis_staffTis_superuserr
   is_verifiedz"Superuser must have is_staff=True.z&Superuser must have is_superuser=True.r   )
Permissionr   super_adminzSuper AdministratorzFull system accesssystem   )namedescription	role_typelevelr
   )codedefaultsr   )
setdefaultgetr   r   django.contrib.auth.modelsr#   r   r   r   r   get_or_createpermissionssetallr   )
r   r   r   r   r   r#   r   r   Z
admin_rolecreatedr   r   r   create_superuser   s6    
zUserManager.create_superuser)N)N)__name__
__module____qualname____doc__r   r5   r   r   r   r   r      s   
r   N)django.contrib.auth.base_userr   r   r   r   r   r   <module>   s   