o
    &zh                     @   s   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZ dddZd	d
 Zdd Zdede je j fddZdS )    N)import_module)settings)SESSION_KEYget_user_model)app_settings)Clientc                 C   s   t tj}|j| dS )N)session_key)r   r   SESSION_ENGINESessionStore)r   engine r   _/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/headless/internal/sessionkit.pysession_store   s   
r   c                   C   s   t  S N)r   r   r   r   r   new_session   s   r   c                 C   sd   | j jjtjkr
d S tj}|| }| jj	}| j
 }|r,|s.|| }|r*||kr0|S d S d S d S r   )allauthheadlessclientr   APPr   TOKEN_STRATEGYget_session_tokensessionmodifiedis_emptycreate_session_token)requeststrategy	hdr_tokenr   empty	new_tokenr   r   r   expose_session_token   s   


r    tokenreturnc                 C   sd   t j| }|s
d S |t}|r0t jj}|r0||}t j	j
|d }|r0|jr0||fS d S )N)pk)r   r   lookup_sessiongetr   r   _metar#   	to_pythonobjectsfilterfirst	is_active)r!   r   user_id_strmeta_pkuser_iduserr   r   r   authenticate_by_x_session_token!   s   



r0   r   )typing	importlibr   django.confr   django.contrib.authr   r   allauth.headlessr   allauth.headless.constantsr   r   r   r    strOptionalTupler0   r   r   r   r   <module>   s    
