File: //lib/python3/dist-packages/django/contrib/auth/__pycache__/checks.cpython-310.pyc
o
�aN � @ s` d dl mZ d dlmZ d dlmZ d dlmZ d dlm Z ddl
mZ d
d d
�Zd
dd�Z
dS )� )�chain)�
MethodType)�apps)�settings)�checks� )�_get_builtin_permissionsNc s| | d u rt �tj�� ntj�d�\}}| D ]}|j|kr#|�|�� nqg S g }t� jtt f�s;|�
tjd� dd�� � j
� jv rS|�
tjdd� j
� j
f � dd�� � j�� j
�js�t� fd d
�� jjD ��s�tjdgkr�|�
tjd� jj� j
f � d
d�� n|�
tjd� jj� j
f d� dd�� t� � jt�r�|�
tjd� � dd�� t� � jt�r�|�
tjd� � dd�� |S )N�.z*'REQUIRED_FIELDS' must be a list or tuple.z auth.E001��obj�idzjThe field named as the 'USERNAME_FIELD' for a custom user model must not be included in 'REQUIRED_FIELDS'.zaThe 'USERNAME_FIELD' is currently set to '%s', you should remove '%s' from the 'REQUIRED_FIELDS'.z auth.E002)�hintr r c 3 s � | ]
}|j � jfkV qd S �N)�fields�USERNAME_FIELD)�.0�
constraint��cls� �</usr/lib/python3/dist-packages/django/contrib/auth/checks.py� <genexpr>7 s
� �
�z#check_user_model.<locals>.<genexpr>z)django.contrib.auth.backends.ModelBackendzC'%s.%s' must be unique because it is named as the 'USERNAME_FIELD'.z auth.E003z?'%s.%s' is named as the 'USERNAME_FIELD', but it is not unique.zKEnsure that your authentication backend(s) can handle non-unique usernames.z auth.W004z�%s.is_anonymous must be an attribute or property rather than a method. Ignoring this is a security issue as anonymous users will be treated as authenticated!z auth.C009z�%s.is_authenticated must be an attribute or property rather than a method. Ignoring this is a security issue as anonymous users will be treated as authenticated!z auth.C010)r � get_modelr �AUTH_USER_MODEL�split�label�
isinstance�REQUIRED_FIELDS�list�tuple�appendr �Errorr �_meta� get_field�unique�any�total_unique_constraints�AUTHENTICATION_BACKENDS�object_name�Warning�is_anonymousr �Critical�is_authenticated)�app_configs�kwargs� app_label�
model_name�
app_config�errorsr r r �check_user_model s�
���
�����
���
������ ��� r3 c K s� | d u r t �� }n
t�dd� | D ��}t �dd�}|j�d�j}|j�d�j}g }|D ]�}|j}tt |��} | rCt
dd� | �� D ��nd}
|
|krc||
t|j
� }|�tjd |j||f |d
d�� | rpt
dd� | �� D ��nd}||kr�||t|j� }
|�tjd
|j|
|f |dd�� t� }|jD ]`\}}t|�|kr�|�tjd||j|f |dd�� t|�|kr�|�tjd||j|f |dd�� || v r�|�tjd||jf |dd�� n||v r�|�tjd||jf |dd�� |�|� q�q+|S )Nc s s � | ]}|� � V qd S r )�
get_models)r r1 r r r r m � � z+check_models_permissions.<locals>.<genexpr>�auth�
Permission�name�codenamec s � � | ]}t |�V qd S r ��len)r r8 r r r r y r5 r zzThe verbose_name of model '%s' must be at most %d characters for its builtin permission names to be at most %d characters.z auth.E007r
c s r: r r; )r r9 r r r r � r5 zvThe name of model '%s' must be at most %d characters for its builtin permission codenames to be at most %d characters.z auth.E011zEThe permission named '%s' of model '%s' is longer than %d characters.z auth.E008zIThe permission codenamed '%s' of model '%s' is longer than %d characters.z auth.E012zOThe permission codenamed '%s' clashes with a builtin permission for model '%s'.z auth.E005z;The permission codenamed '%s' is duplicated for model '%s'.z auth.E006)r r4 r �
from_iterabler r"