File: //usr/lib/python3/dist-packages/django/contrib/auth/__pycache__/backends.cpython-310.pyc
o
3�a�! � @ s� d dl mZ d dlmZ d dlmZmZmZ e� ZG dd� d�Z G dd� de �Z
G dd � d e
�ZG d
d� de
�ZG dd
� d
e�Z
dS )� )�get_user_model)�
Permission)�Exists�OuterRef�Qc @ sD e Zd Zdd� Zdd� Zddd�Zddd �Zdd
d�Zddd
�ZdS )�BaseBackendc K � d S �N� )�self�request�kwargsr
r
�>/usr/lib/python3/dist-packages/django/contrib/auth/backends.py�authenticate � zBaseBackend.authenticatec C r r r
)r �user_idr
r
r �get_user r zBaseBackend.get_userNc C � t � S r ��set�r �user_obj�objr
r
r �get_user_permissions � z BaseBackend.get_user_permissionsc C r r r r r
r
r �get_group_permissions r z!BaseBackend.get_group_permissionsc C s h | j ||d��| j||d��S �N)r )r r r r
r
r �get_all_permissions s
��zBaseBackend.get_all_permissionsc C s || j ||d�v S r )r �r r �permr r
r
r �has_perm s zBaseBackend.has_permr ) �__name__�
__module__�__qualname__r r r r r r r
r
r
r r s
r c s� e Zd ZdZddd�Zdd� Zdd� Zd d
� Zdd� Zdd
d�Z ddd�Z
d� fdd� Zd� fdd� Zdd� Z
ddd�Zdd� Z� ZS )�ModelBackendz9
Authenticates against settings.AUTH_USER_MODEL.
Nc K s| |d u r
|� tj�}|d u s|d u rd S ztj�|�}W n tjy- t� �|� Y d S w |�|�r:| �|�r<|S d S d S r ) �get� UserModel�USERNAME_FIELD�_default_manager�get_by_natural_key�DoesNotExist�set_password�check_password�user_can_authenticate)r r �username�passwordr
�userr
r
r r $ s ��zModelBackend.authenticatec C s t |dd�}|p|du S )z{
Reject users with is_active=False. Custom user models that don't have
that attribute are allowed.
� is_activeN)�getattr)r r0 r1 r
r
r r- 3 s z"ModelBackend.user_can_authenticatec C s
|j �� S r )�user_permissions�all)r r r
r
r �_get_user_permissions; s
z"ModelBackend._get_user_permissionsc C s0 t � j�d�}d|�� }tjjdi ||i��S )N�groupsz group__%sr
)r �_meta� get_field�related_query_namer �objects�filter)r r �user_groups_field�user_groups_queryr
r
r �_get_group_permissions>