o
    Zht                     @   sL   d dl mZ d dlmZ d dlmZ erddlmZ G dd ded Zd	S )
    )TYPE_CHECKING)make_password)UserManager   )Userc                   @   sV   e Zd ZdZdededB fddZddededB fddZddededB fd	d
ZdS )r   z"Custom manager for the User model.emailpasswordNc                 K   sJ   |sd}t || |}| jdd|i|}t||_|j| jd |S )zK
        Create and save a user with the given email and password.
        zThe given email must be setr   )usingN )
ValueErrornormalize_emailmodelr   r   save_db)selfr   r   extra_fieldsmsguserr
   r
   1/var/www/html/mimamsha/mimansha/users/managers.py_create_user   s   

zUserManager._create_userc                 K   s,   | dd | dd | j||fi |S )Nis_staffFis_superuser)
setdefaultr   )r   r   r   r   r
   r
   r   create_user   s   zUserManager.create_userc                 K   s`   | dd | dd |ddurd}t||ddur&d}t|| j||fi |S )Nr   Tr   z"Superuser must have is_staff=True.z&Superuser must have is_superuser=True.)r   getr   r   )r   r   r   r   r   r
   r
   r   create_superuser   s   zUserManager.create_superuser)N)__name__
__module____qualname____doc__strr   r   r   r
   r
   r
   r   r   
   s
    r   r   N)	typingr   django.contrib.auth.hashersr   django.contrib.auth.modelsr   DjangoUserManagermodelsr   r
   r
   r
   r   <module>   s    