o
    "4gf                     @   s   d dl m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lmZ ded	efd
dZdeded	efddZdefddZdefddZdedefddZdddZd	ee fddZdS )    )Optional)messages)HttpRequest)app_settingssignals)get_adapter)"raise_if_reauthentication_required)EmailAddressemail_addressreturnc                 C   s   t  }|| S )N)r   can_delete_email)r
   adapter r   t/var/www/html/authentication-server/venv/lib/python3.10/site-packages/allauth/account/internal/flows/manage_email.pyr      s   
r   requestc                 C   s   t jrt|  d}t }t|s|| tjdd|ji |S |	  t
jjt| | j|d || tjdd|ji |d| jd|ji d}|S )	NFz0account/messages/cannot_delete_primary_email.txtemailsenderr   userr
   z"account/messages/email_deleted.txtzaccount/email/email_deleteddeleted_emailT)r   REAUTHENTICATION_REQUIREDr   r   r   add_messager   ERRORr   remover   email_removedsendr	   r   SUCCESSsend_notification_mail)r   r
   successr   r   r   r   delete_email   s@   r   c                 C   s`   t jrt|  || }t| }|| tjdd|jd i |j	r.t
jjt| | j|d d S d S )Nz,account/messages/email_confirmation_sent.txtr   r   )r   r   r   saver   r   r   INFOcleaned_datapkr   email_addedr   r	   r   )r   formr
   r   r   r   r   	add_email7   s$   

r&   c                 C   s   | j ptjj| jdd  S )NT)r   verified)r'   r	   objectsfilterr   exists)r
   r   r   r   can_mark_as_primaryL   s   r+   c                 C   s   t jrt|  d}t|st | tjd |S | jj	sJ t
jj| jdd }|  t }|| tjd t| || d}|S )NFz-account/messages/unverified_primary_email.txtT)r   primaryz&account/messages/primary_email_set.txt)r   r   r   r+   r   r   r   r   r   is_authenticatedr	   r(   r)   firstset_as_primaryr   emit_email_changed)r   r
   r   from_email_addressr   r   r   r   mark_as_primaryU   s4   r2   Nc                 C   sH   |j }tjjt| |||d |r"t jd||j|jd|jd d S d S )N)r   r   r   r1   to_email_addresszaccount/email/email_changed)
from_emailto_email)contextr   )r   r   email_changedr   r	   r   r   r   )r   r1   r3   r   r   r   r   r0   u   s$   
r0   c                 C   s^   ddl m} || sdS tjsdS tjtjjkrtjsJ dS tjdkr&dS tjdu s-J dS )z
    True -- email is unique
    False -- email is already in use
    None -- email is in use, but we should hide that using email verification.
    r   )filter_users_by_emailTFNstrict)allauth.account.utilsr8   r   PREVENT_ENUMERATIONEMAIL_VERIFICATIONEmailVerificationMethod	MANDATORY)r   r8   r   r   r   assess_unique_email   s   

r?   )r   N)typingr   django.contribr   django.httpr   allauth.accountr   r   allauth.account.adapterr   /allauth.account.internal.flows.reauthenticationr   allauth.account.modelsr	   boolr   r   r&   r+   r2   r0   r?   r   r   r   r   <module>   s    $	
 