Ë
    ûûàgG  ã                   ó    — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 ddl
mZ  G d„ d	ej                  «      Z G d
„ dej                  «      Zy)é    )Ú	timedelta)ÚOptional)Úmodels)ÚQ)Útimezoneé   )Úapp_settingsc                   ób   — e Zd Zd„ Zd„ Zd„ Zdd„Zd„ Zd„ Zde	e
   fd„Zd	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚEmailAddressManagerc                 ó²   — d}t         j                  ryt         j                  r3| j                  |¬«      j	                  «       }|t         j                  k  }|S )NT)Úuser)r	   ÚCHANGE_EMAILÚMAX_EMAIL_ADDRESSESÚfilterÚcount)Úselfr   Úretr   s       úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/account/managers.pyÚcan_add_emailz!EmailAddressManager.can_add_email   sL   € ØˆÜ×$Ò$ð Ü×-Ò-Ø—K‘K T�KÓ*×0Ñ0Ó2ˆEØœ,×:Ñ:Ñ:ˆCØˆ
ó    c                 ó®   — t         j                  sJ ‚| j                  j                  j	                  |d¬«      j                  d«      j                  «       S )z^
        Returns the email address the user is in the process of changing to, if any.
        F©r   ÚverifiedÚpk)r	   r   ÚmodelÚobjectsr   Úorder_byÚlast©r   r   s     r   Úget_newzEmailAddressManager.get_new   sI   € ô ×(Ò(Ð(Ð(à�J‰J×Ñ×%Ñ%¨4¸%Ð%Ó@×IÑIÈ$ÓO×TÑTÓVð	
r   c                 ó,  — t         j                  sJ ‚| j                  |«      }|j                  «       }|s(| j                  j
                  j                  ||¬«      }n%||_        d|_        d|_	        |j                  «        |j                  |«       |S )z�
        Adds an email address the user wishes to change to, replacing his
        current email address once confirmed.
        ©r   ÚemailF)r	   r   r    Úlowerr   r   Úcreater#   r   ÚprimaryÚsaveÚsend_confirmation)r   Úrequestr   r#   Úinstances        r   Úadd_new_emailz!EmailAddressManager.add_new_email!   sƒ   € ô
 ×(Ò(Ð(Ð(Ø—<‘< Ó%ˆØ—‘“ˆÙØ—z‘z×)Ñ)×0Ñ0°dÀ%Ð0ÓH‰Hð #ˆHŒNØ %ˆHÔØ$ˆHÔØ�M‰MŒOØ×"Ñ" 7Ô+Øˆr   c                 ó†   — |j                  «       }| j                  ||d|i¬«      \  }}|r|r|j                  ||¬«       |S )Nr#   )r   r#   Údefaults)Úsignup)r$   Úget_or_creater(   )r   r)   r   r#   Úconfirmr.   Úemail_addressÚcreateds           r   Ú	add_emailzEmailAddressManager.add_email5   sS   € Ø—‘“ˆØ!%×!3Ñ!3Ø˜U¨g°uÐ-=ð "4ó "
Ñˆ�wñ ‘wØ×+Ñ+¨G¸FÐ+ÔCàÐr   c                 ód   — | j                  |d¬«      j                  dd«      j                  «       S )NTr   z-primaryr   )r   r   Úfirstr   s     r   Úget_verifiedz EmailAddressManager.get_verified@   s+   € Ø�{‰{ ¨tˆ{Ó4×=Ñ=¸jÈ$ÓO×UÑUÓWÐWr   c                 óh   — 	 | j                  |d¬«      S # | j                  j                  $ r Y y w xY w)NT)r   r&   )Úgetr   ÚDoesNotExistr   s     r   Úget_primaryzEmailAddressManager.get_primaryC   s6   € ð	Ø—8‘8 ¨t�8Ó4Ð4øØ�z‰z×&Ñ&ò 	Ùð	ús   ‚ •1°1Úreturnc                 ód   — ddl m} | j                  |«      }|r|j                  }|S  ||«      }|S )Nr   )Ú
user_email)Úallauth.account.utilsr=   r:   r#   )r   r   r=   r&   r#   s        r   Úget_primary_emailz%EmailAddressManager.get_primary_emailI   s9   € Ý4à×"Ñ" 4Ó(ˆÙØ—M‘MˆEð ˆñ ˜tÓ$ˆEØˆr   c                 ó~   — | j                  d|j                  «       ¬«      D �cg c]  }|j                  ‘Œ c}S c c}w )NT)r   r#   )r   r$   r   )r   r#   Úaddresss      r   Úget_users_forz!EmailAddressManager.get_users_forS   s8   € ð )-¯©¸TÈÏÉË¨Ó(Wö
Ø$ˆG�L‹Lò
ð 	
ùò 
s   ¤:c                 ó   — ||_         y)a  
        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_userz'EmailAddressManager.fill_cache_for_userZ   s   € ð $-ˆÕ r   c                 óä   — d}t        ||d «      }|j                  «       }|€| j                  ||¬«      }||_        |S |D ]  }|j                  |k(  sŒ|c S  | j
                  j                  «       ‚)NrD   r"   )Úgetattrr$   r8   r   r#   r   r9   )r   r   r#   Ú	cache_keyrE   r   rA   s          r   Úget_for_userz EmailAddressManager.get_for_userc   s{   € Ø)ˆ	Ü˜D )¨TÓ2ˆ	Ø—‘“ˆØÐØ—(‘( ¨E�(Ó2ˆCð ˆCŒHØˆJà$ò #�Ø—=‘= EÓ)Ø"’Nð#ð —*‘*×)Ñ)Ó+Ð+r   c                 ó`   — | j                  |j                  «       d¬«      j                  «       S )NT)r#   r   )r   r$   Úexists)r   r#   s     r   Úis_verifiedzEmailAddressManager.is_verifieds   s$   € Ø�{‰{ §¡£¸ˆ{Ó>×EÑEÓGÐGr   c                 óh   — | j                  |D �cg c]  }|j                  «       ‘Œ c}¬«      S c c}w )N)Ú	email__in)r   r$   )r   ÚemailsÚes      r   ÚlookupzEmailAddressManager.lookupv   s'   € Ø�{‰{¸Ö%@°A a§g¡g¥iÒ%@ˆ{ÓAÐAùÒ%@s   �/N)FF)Ú__name__Ú
__module__Ú__qualname__r   r    r+   r3   r6   r:   r   Ústrr?   rB   rF   rJ   rM   rR   © r   r   r   r      sL   „ ò
ò
òó(	òXòð¨°#©ó ò
ò-ò,ò HóBr   r   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚEmailConfirmationManagerc                 ó@   — | j                  | j                  «       «      S ©N)r   Ú	expired_q©r   s    r   Úall_expiredz$EmailConfirmationManager.all_expired{   s   € Ø�{‰{˜4Ÿ>™>Ó+Ó,Ð,r   c                 ó`   — | j                  | j                  «       «      j                  d¬«      S )NF)Úemail_address__verified)Úexcluder\   r   r]   s    r   Ú	all_validz"EmailConfirmationManager.all_valid~   s&   € Ø�|‰|˜DŸN™NÓ,Ó-×4Ñ4ÈUÐ4ÓSÐSr   c                 óx   — t        j                  «       t        t        j                  ¬«      z
  }t        |¬«      S )N)Údays)Úsent__lt)r   Únowr   r	   ÚEMAIL_CONFIRMATION_EXPIRE_DAYSr   )r   Úsent_thresholds     r   r\   z"EmailConfirmationManager.expired_q�   s/   € Ü!Ÿ™›¬)Ü×<Ñ<ô+
ñ 
ˆô ˜.Ô)Ð)r   c                 ó@   — | j                  «       j                  «        y r[   )r^   Údeleter]   s    r   Údelete_expired_confirmationsz5EmailConfirmationManager.delete_expired_confirmations‡   s   € Ø×ÑÓ×!Ñ!Õ#r   N)rS   rT   rU   r^   rb   r\   rk   rW   r   r   rY   rY   z   s   „ ò-òTò*ó$r   rY   N)Údatetimer   Útypingr   Ú	django.dbr   Údjango.db.modelsr   Údjango.utilsr   Ú r	   ÚManagerr   rY   rW   r   r   ú<module>rs      s<   ðÝ Ý å Ý Ý !å ôlB˜&Ÿ.™.ô lBô^$˜vŸ~™~õ $r   