
    g                         d dl mZ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
Zdeded	efdZdefdZdefdZdedefdZddZd	ee   fdZd	ee   fdZy)    )ListOptional)messages)HttpRequest)app_settingssignals)get_adapter)"raise_if_reauthentication_required)EmailAddressemail_addressreturnc                 8    t               }|j                  |       S )N)r	   can_delete_email)r   adapters     h/var/www/django_project/virt/lib/python3.12/site-packages/allauth/account/internal/flows/manage_email.pyr   r      s    mG##M22    requestc                    t         j                  rt        |        d}t               }t	        |      s0|j                  | t        j                  dd|j                  i       |S |j                          t        j                  j                  t        | | j                  |       |j                  | t        j                  dd|j                  i       |j!                  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   s       r   delete_emailr#      s    --*73GmGM*NN>m))*		
4 N' 	""'	 	# 	
 	0m))*		
 	&&)LLm112	

 Nr   c                 P   t         j                  rt        |        |j                  |       }t	        |       }|j                  | t        j                  dd|j                  d   i       |j                  r2t        j                  j                  t        | | j                  |       y y )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   s       r   	add_emailr+   7   s    --*73IIg&M'"G6	$##G,-	   '	 	! 	
 r   c                     | j                   xs: t        j                  j                  | j                  d      j                          S )NT)r   verified)r-   r   objectsfilterr   exists)r   s    r   can_mark_as_primaryr1   L   sE     	##**##d + 

&(r   c                    t         j                  rt        |        d}t        |      s+t	               j                  | t        j                  d       |S | j                  j                  sJ t        j                  j                  | j                  d      j                         }|j                          t	               }|j                  | t        j                  d       t!        | ||       d}|S )NFz-account/messages/unverified_primary_email.txtT)r   primaryz&account/messages/primary_email_set.txt)r   r   r
   r1   r	   r   r   r   r   is_authenticatedr   r.   r/   firstset_as_primaryr    emit_email_changed)r   r   r"   from_email_addressr   s        r   mark_as_primaryr9   U   s    --*73 G}-!!NN;	
& N ||,,,,)1188t 9 

%' 	 	$$&-4	

 	7$6FNr   Nc                     |j                   }t        j                  j                  t        | |||       |r?t               j                  d||j                  |j                  d|j                         y y )N)r   r   r   r8   to_email_addresszaccount/email/email_changed)
from_emailto_email)contextr   )r   r   email_changedr   r   r	   r!   r   )r   r8   r;   r   s       r   r7   r7   u   s|      D-)   ,,)066,22 %** 	- 	
 r   c                    ddl m}  ||       syt        j                  syt        j                  t        j
                  j                  k(  rt        j                  sJ yt        j                  dk(  ryt        j                  du sJ y)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.utilsrA   r   PREVENT_ENUMERATIONEMAIL_VERIFICATIONEmailVerificationMethod	MANDATORY)r   rA   s     r   assess_unique_emailrH      s{     < '--''//99	: ////		)	)X	5
 //4777
 r   c                    t        t        j                  j                  |            }t        j
                  rSddlm}  || d      \  }}|r>|j                  j                  |j                  k(  r|j                  |j                         |S )N)r   r   )get_pending_verificationT)peek)listr   r.   r/   r   "EMAIL_VERIFICATION_BY_CODE_ENABLED9allauth.account.internal.flows.email_verification_by_coderJ   r   user_idr(   append)r   r   	addressesrJ   verification_s         r   list_email_addressesrT      st    \))00d0;<I66	
 37FaL66>>$''I\778r   )r   N)typingr   r   django.contribr   django.httpr   allauth.accountr   r   allauth.account.adapterr	   /allauth.account.internal.flows.reauthenticationr
   allauth.account.modelsr   boolr   r#   r+   r1   r9   r7   rH   rT    r   r   <module>r^      s    ! # # 1 / 03L 3T 3
!+ !l !t !H
{ 
*| [  @
*#(4. #L4+= r   