File: //usr/lib/python3/dist-packages/django/contrib/auth/__pycache__/base_user.cpython-310.pyc
o
3�a� � @ s� d Z ddlZddlmZ ddlmZ ddlmZmZm Z ddl
mZ ddlm
Z
mZ ddlmZ G d d
� d
ej�ZG dd� dej�ZdS )
zg
This module allows importing AbstractBaseUser even when django.contrib.auth is
not in INSTALLED_APPS.
� N)�settings)�password_validation)�check_password�is_password_usable�
make_password)�models)�get_random_string�salted_hmac)�gettext_lazyc @ s. e Zd Zedd� �Z d
dd�Zdd� Zd S )�BaseUserManagerc C sJ |pd}z|� � �dd�\}}W n
ty Y |S w |d |�� }|S )zS
Normalize the email address by lowercasing the domain part of it.
� �@� )�strip�rsplit�
ValueError�lower)�cls�email�
email_name�domain_part� r �?/usr/lib/python3/dist-packages/django/contrib/auth/base_user.py�normalize_email s �zBaseUserManager.normalize_email�
�7abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789c C s
t ||�S )z�
Generate a random password with the given length and given
allowed_chars. The default value of allowed_chars does not have "I" or
"O" or letters and digits that look similar -- just to avoid confusion.
)r )�self�length�
allowed_charsr r r �make_random_password! s
z$BaseUserManager.make_random_passwordc C s | j di | jj|i��S )Nr )�get�model�USERNAME_FIELD)r �usernamer r r �get_by_natural_key, s z"BaseUserManager.get_by_natural_keyN)r r )�__name__�
__module__�__qualname__�classmethodr r r$ r r r r r s
�r c s� e Zd Zejed�dd�Zejed�ddd�ZdZ g Z
dZG dd � d �Zd
d� Z
� fdd
�Zdd� Zdd� Zdd� Zedd� �Zedd� �Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zed$d%� �Zed&d'� �Z� ZS )(�AbstractBaseUser�password� )�
max_lengthz
last loginT)�blank�nullNc @ s e Zd ZdZdS )zAbstractBaseUser.MetaTN)r% r&