
    SњhX                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  SSKJr   " S	 S
\R                  5      r " S S\R                  5      rg)    )	timedelta)Optional)models)Q)HttpRequest)timezone   )app_settingsc                       \ rS rSrS rS r SS\S\S\4S jjr	SS jr
S	 rS
 rS\\   4S jrS rS rS rS rS rSrg)EmailAddressManager   c                     Sn[         R                  (       a  g[         R                  (       a0  U R                  US9R	                  5       nU[         R                  :  nU$ )NT)user)r
   CHANGE_EMAILMAX_EMAIL_ADDRESSESfiltercount)selfr   retr   s       SD:\Anime\Ugyen\janka_web_project\venv\Lib\site-packages\allauth/account/managers.pycan_add_email!EmailAddressManager.can_add_email   sL    $$ --KKTK*002E,:::C
    c                 \    U R                  USS9R                  S5      R                  5       $ )zN
Returns the email address the user is in the process of changing to, if any.
Fr   verifiedpk)r   order_bylastr   r   s     r   get_newEmailAddressManager.get_new   s+     {{u{5>>tDIIKKr   requestemailsend_verificationc                     SSK Jn  U R                  U5      nUR                  5       nU(       d  U R	                  X#S9nO$X6l        SUl        SUl        UR                  5         U(       a  U" X5        U$ )zi
Adds an email address the user wishes to change to, replacing his
current email address once confirmed.
r   "send_verification_email_to_addressr   r$   F)	1allauth.account.internal.flows.email_verificationr(   r!   lowercreater$   r   primarysave)r   r#   r   r$   r%   r(   instances          r   add_new_email!EmailAddressManager.add_new_email   se    	
 <<%{{{:H #N %H$HMMO.wAr   c                     SSK Jn  UR                  5       nU R                  X#SU0S9u  pxU(       a  U(       a  U" X5        U$ )Nr   r'   r$   )r   r$   defaults)r*   r(   r+   get_or_create)	r   r#   r   r$   confirmsignupr(   email_addresscreateds	            r   	add_emailEmailAddressManager.add_email9   sK    	
 !%!3!3gu-= "4 "
 w.wFr   c                 ^    U R                  USS9R                  SS5      R                  5       $ )NTr   z-primaryr   )r   r   firstr    s     r   get_verified EmailAddressManager.get_verifiedH   s+    {{t{4==j$OUUWWr   c                 d     U R                  USS9$ ! U R                  R                   a     g f = f)NT)r   r-   )getmodelDoesNotExistr    s     r   get_primaryEmailAddressManager.get_primaryK   s6    	88t844zz&& 		s    //returnc                 n    SSK Jn  U R                  U5      nU(       a  UR                  nU$ U" U5      nU$ )Nr   )
user_email)allauth.account.utilsrG   rC   r$   )r   r   rG   r-   r$   s        r   get_primary_email%EmailAddressManager.get_primary_emailQ   s9    4""4(MME  t$Er   c                 |    U R                  SUR                  5       S9 Vs/ s H  o"R                  PM     sn$ s  snf )NT)r   r$   )r   r+   r   )r   r$   addresss      r   get_users_for!EmailAddressManager.get_users_for[   s;     )-T(W
(WWLL(W
 	
 
s   9c                     X!l         g)z
In a multi-db setup, inserting records and re-reading them later
on may result in not being able to find newly inserted
records. Therefore, we maintain a cache for the user so that
we can avoid database access when we need to re-read..
N)_emailaddress_cache)r   r   	addressess      r   fill_cache_for_user'EmailAddressManager.fill_cache_for_userb   s
     $- r   c                     Sn[        XS 5      nUR                  5       nUc%  U R                  XR                  5       S9nXl        U$ U H  nUR                  U:X  d  M  Us  $    U R
                  R                  5       e)NrP   r)   )getattrr+   r@   r   r$   rA   rB   )r   r   r$   	cache_keyrQ   r   rL   s          r   get_for_user EmailAddressManager.get_for_userk   sv    )	DT2	((KKM(:C HJ$==E)"N % **))++r   c                 Z    U R                  UR                  5       SS9R                  5       $ )NT)r$   r   )r   r+   exists)r   r$   s     r   is_verifiedEmailAddressManager.is_verified{   s$    {{{>EEGGr   c                 f    U R                  U Vs/ s H  o"R                  5       PM     snS9$ s  snf )N)	email__in)r   r+   )r   emailses      r   lookupEmailAddressManager.lookup~   s)    {{%@Aggi%@{AA%@s   . N)T)FF)__name__
__module____qualname____firstlineno__r   r!   r   strboolr0   r9   r=   rC   r   rI   rM   rR   rW   r[   ra   __static_attributes__rc   r   r   r   r      sl    
L QU"14IM4X# 
-, HBr   r   c                   ,    \ rS rSrS rS rS rS rSrg)EmailConfirmationManager   c                 @    U R                  U R                  5       5      $ N)r   	expired_qr   s    r   all_expired$EmailConfirmationManager.all_expired   s    {{4>>+,,r   c                 Z    U R                  U R                  5       5      R                  SS9$ )NF)email_address__verified)excluderp   r   rq   s    r   	all_valid"EmailConfirmationManager.all_valid   s&    ||DNN,-44U4SSr   c                 n    [         R                  " 5       [        [        R                  S9-
  n[        US9$ )N)days)sent__lt)r   nowr   r
   EMAIL_CONFIRMATION_EXPIRE_DAYSr   )r   sent_thresholds     r   rp   "EmailConfirmationManager.expired_q   s/    !)<<+
 
 .))r   c                 @    U R                  5       R                  5         g ro   )rr   deleterq   s    r   delete_expired_confirmations5EmailConfirmationManager.delete_expired_confirmations   s    !!#r   rc   N)	rd   re   rf   rg   rr   rw   rp   r   rj   rc   r   r   rl   rl      s    -T*$r   rl   N)datetimer   typingr   	django.dbr   django.db.modelsr   django.httpr   django.utilsr    r
   Managerr   rl   rc   r   r   <module>r      s?        # ! sB&.. sBl$v~~ $r   