Ë
    ûûàgz+  ã                   óV  — d dl Z d dlZd dlmZ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 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mZ d dlmZ d dlmZmZ  G d„ dej@                  «      Z! G d„ d«      Z" G d„ de"ej@                  «      Z# G d„ de"«      Z$ G d„ d«      Z%d„ Z&y)é    N)ÚDictÚOptional)Úsettings)Úget_user_model)ÚAbstractBaseUser)Úsigning)Úmodels)ÚQ)ÚUniqueConstraint)Útimezone)Úgettext_lazy)Úapp_settingsÚsignals)Úget_adapter)ÚEmailAddressManagerÚEmailConfirmationManagerc                   óz  ‡ — e Zd Z ej                  ej                   ed«      ej                  ¬«      Z	 ej                  dej                   ed«      ¬«      Z ej                   ed«      d¬«      Z ej                   ed	«      d¬«      Z e«       Z G d
„ d«      Zd„ Zˆ fd„Zd„ Zdd„Zdd„Zdd„Zd„ Zˆ xZS )ÚEmailAddressÚuser©Úverbose_nameÚ	on_deleteTúemail address)Údb_indexÚ
max_lengthr   ÚverifiedF©r   ÚdefaultÚprimaryc            	       óº   — e Zd Z ed«      Z ed«      ZdgZ eddgd ed¬«      ¬	«      gZ	e
j                  r#e	j                   ed
gd ed¬«      ¬	«      «       yy)úEmailAddress.Metar   zemail addresses)r   Úemailr   r   Úunique_primary_emailT)r   )ÚfieldsÚnameÚ	conditionr"   Úunique_verified_email)r   N)Ú__name__Ú
__module__Ú__qualname__Ú_r   Úverbose_name_pluralÚunique_togetherr   r
   Úconstraintsr   ÚUNIQUE_EMAILÚappend© ó    úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/account/models.pyÚMetar!   '   sw   „ Ù˜Ó)ˆÙÐ 1Ó2ÐØ,Ð-ˆáØ 	Ð*Ø+Ù Dœ/ôð
ˆð ×$Ò$Ø×ÑÙ Ø#˜9Ø0Ù¨Ô.ôõð %r2   r4   c                 ó   — | j                   S ©N)r"   ©Úselfs    r3   Ú__str__zEmailAddress.__str__;   s   € Ø�z‰zÐr2   c                 ó`   •— t         ‰| �  «        | j                  j                  «       | _        y r6   )ÚsuperÚcleanr"   Úlower)r8   Ú	__class__s    €r3   r<   zEmailAddress.clean>   s    ø€ Ü‰‰ŒØ—Z‘Z×%Ñ%Ó'ˆ�
r2   c                 óì   — | j                   ryd}t        j                  rSt        j                  j                  | j                  ¬«      j                  d| j                  ¬«      j                  «       }| S )NTF©Úpk)r   r"   )
r   r   r/   r   ÚobjectsÚexcluderA   Úfilterr"   Úexists)r8   Úconflicts     r3   Úcan_set_verifiedzEmailAddress.can_set_verifiedB   s]   € Ø�=Š=ØØˆÜ×$Ò$ä×$Ñ$×,Ñ,°·±Ð,Ó8ß‘ ¨T¯Z©Z�Ó8ß‘“ð ð
 ˆ|Ðr2   c                 óŒ   — | j                   ry| j                  «       rd| _         |r| j                  dg¬«       | j                   S )NTr   )Úupdate_fields)r   rG   Úsave)r8   Úcommits     r3   Úset_verifiedzEmailAddress.set_verifiedN   s<   € Ø�=Š=ØØ× Ñ Ô"Ø ˆDŒMÙØ—	‘	¨¨�	Ô5Ø�}‰}Ðr2   c                 ó  — ddl m} t        j                  j	                  | j
                  «      }|r|ryd|_        |j                  «        d| _        | j                  «         || j
                  | j                  d¬«       y)z›Marks the email address as primary. In case of `conditional`, it is
        only marked as primary if there is no other primary email address set.
        r   ©Ú
user_emailFT©rK   )	Úallauth.account.utilsrO   r   rB   Úget_primaryr   r   rJ   r"   )r8   ÚconditionalrO   Úold_primarys       r3   Úset_as_primaryzEmailAddress.set_as_primaryW   se   € õ 	5ä"×*Ñ*×6Ñ6°t·y±yÓAˆÙÙØØ"'ˆKÔØ×ÑÔØˆŒØ�	‰	ŒÙ�4—9‘9˜dŸj™j°Õ6Ør2   c                 ób   — t        «       }|j                  | «      }|j                  ||¬«       |S )N)Úsignup)Úget_emailconfirmation_modelÚcreateÚsend)r8   ÚrequestrW   ÚmodelÚconfirmations        r3   Úsend_confirmationzEmailAddress.send_confirmationh   s1   € Ü+Ó-ˆØ—|‘| DÓ)ˆØ×Ñ˜'¨&ÐÔ1ØÐr2   c                 óH  — ddl m} | j                  «         || j                  «      | j                  k(  rmt
        j                  j                  | j                  ¬«      j                  d«      j                  «       }d}|r|j                  } || j                  |d¬«       y y )Nr   rN   )r   z	-verifiedÚ TrP   )
rQ   rO   Údeleter   r"   r   rB   rD   Úorder_byÚfirst)r8   rO   ÚaltÚ	alt_emails       r3   ÚremovezEmailAddress.removen   s|   € Ý4à�‰ŒÙ�d—i‘iÓ  D§J¡JÒ.ä×$Ñ$×+Ñ+°·±Ð+Ó;ß‘˜+Ó&ß‘“ð ð
 ˆIÙØŸI™I�	Ù�t—y‘y )°DÖ9ð /r2   )T)F©NF)r(   r)   r*   r	   Ú
ForeignKeyr   ÚAUTH_USER_MODELr+   ÚCASCADEr   Ú
EmailFieldr   ÚEMAIL_MAX_LENGTHr"   ÚBooleanFieldr   r   r   rB   r4   r9   r<   rG   rL   rU   r^   rf   Ú__classcell__©r>   s   @r3   r   r      s»   ø„ Øˆ6×ÑØ× Ñ Ù�v“YØ—.‘.ô€Dð
 ˆF×ÑØØ×0Ñ0Ù�Ó'ô€Eð
 #ˆv×"Ñ"±°*³ÀuÔM€HØ!ˆf×!Ñ!©q°«|ÀUÔK€Gá!Ó#€G÷ñ ò(ô(ò
óóó"ö:r2   r   c                   ó(   — e Zd Zdee   fd„Zddd„Zy)ÚEmailConfirmationMixinÚreturnc                 óp   — | j                   }|j                  st        «       j                  ||«      }|r|S y r6   )Úemail_addressr   r   Úconfirm_email)r8   r[   rt   Ú	confirmeds       r3   ÚconfirmzEmailConfirmationMixin.confirm   s6   € Ø×*Ñ*ˆØ×%Ò%Ü#›×3Ñ3°G¸]ÓKˆIÙØ$Ð$Ør2   Nc                 ó”   — t        «       j                  || |«       t        j                  j	                  | j
                  || |¬«       y )N)Úsenderr[   r]   rW   )r   Úsend_confirmation_mailr   Úemail_confirmation_sentrZ   r>   )r8   r[   rW   s      r3   rZ   zEmailConfirmationMixin.send‡   s?   € Ü‹×,Ñ,¨W°d¸FÔCÜ×'Ñ'×,Ñ,Ø—>‘>ØØØð	 	-õ 	
r2   rg   ©rr   N)r(   r)   r*   r   r   rw   rZ   r1   r2   r3   rq   rq   ~   s   „ ð (¨<Ñ"8ó õ
r2   rq   c                   ó�  ‡ — e Zd Z ej                  e ed«      ej                  ¬«      Z ej                   ed«      e
j                  ¬«      Z ej                   ed«      d¬«      Z ej                   ed«      d	d¬
«      Z e«       Z G d„ d«      Zd„ Zed„ «       Zed„ «       Zd„ Zde_        dee   fˆ fd„Zddˆ fd„Zˆ xZS )ÚEmailConfirmationr   r   Úcreatedr   ÚsentT)r   ÚnullÚkeyé@   )r   r   Úuniquec                   ó,   — e Zd Z ed«      Z ed«      Zy)úEmailConfirmation.Metazemail confirmationzemail confirmationsN)r(   r)   r*   r+   r   r,   r1   r2   r3   r4   r†   �   s   „ ÙÐ-Ó.ˆÙÐ 5Ó6Ñr2   r4   c                 ó    — d| j                   z  S )Nzconfirmation for %s©rt   r7   s    r3   r9   zEmailConfirmation.__str__¡   s   € Ø$ t×'9Ñ'9Ñ9Ð9r2   c                 ó‚   — t        «       j                  |j                  «      }| j                  j	                  ||¬«      S )N)rt   r‚   )r   Úgenerate_emailconfirmation_keyr"   Ú_default_managerrY   )Úclsrt   r‚   s      r3   rY   zEmailConfirmation.create¤   s6   € ä‹m×:Ñ:¸=×;NÑ;NÓOˆØ×#Ñ#×*Ñ*¸ÈCÐ*ÓPÐPr2   c                 óÀ   — t         j                  j                  «       }|j                  d«      }|j	                  |j                  «       ¬«      j                  «       }|S )NÚemail_address__user)r‚   )r~   rB   Ú	all_validÚselect_relatedrD   r=   rc   )rŒ   r‚   ÚqsÚemailconfirmations       r3   Úfrom_keyzEmailConfirmation.from_key©   sM   € ä×&Ñ&×0Ñ0Ó2ˆØ×ÑÐ4Ó5ˆØŸI™I¨#¯)©)«+˜IÓ6×<Ñ<Ó>ÐØ Ð r2   c                 ó’   — | j                   t        j                  t        j                  ¬«      z   }|t        j                  «       k  S )N)Údays)r€   ÚdatetimeÚ	timedeltar   ÚEMAIL_CONFIRMATION_EXPIRE_DAYSr   Únow)r8   Úexpiration_dates     r3   Úkey_expiredzEmailConfirmation.key_expired°   s9   € ØŸ)™)¤h×&8Ñ&8Ü×<Ñ<ô'
ñ 
ˆð ¤(§,¡,£.Ñ0Ð0r2   rr   c                 óD   •— | j                  «       st        ‰| �	  |«      S y r6   )r›   r;   rw   )r8   r[   r>   s     €r3   rw   zEmailConfirmation.confirm¸   s!   ø€ Ø×ÑÔ!Ü‘7‘? 7Ó+Ð+Ør2   c                 óz   •— t         ‰| �  ||¬«       t        j                  «       | _        | j                  «        y )N)r[   rW   )r;   rZ   r   r™   r€   rJ   )r8   r[   rW   r>   s      €r3   rZ   zEmailConfirmation.send½   s)   ø€ Ü‰‰˜W¨VˆÔ4Ü—L‘L“NˆŒ	Ø�	‰	�r2   rg   r|   )r(   r)   r*   r	   rh   r   r+   rj   rt   ÚDateTimeFieldr   r™   r   r€   Ú	CharFieldr‚   r   rB   r4   r9   ÚclassmethodrY   r“   r›   Úbooleanr   rw   rZ   rn   ro   s   @r3   r~   r~   ‘   sâ   ø„ Ø%�F×%Ñ%ØÙ�Ó'Ø—.‘.ô€Mð
 #ˆf×"Ñ"±°)³ÀhÇlÁlÔS€GØˆ6×Ñ©Q¨v«Y¸TÔB€DØ
ˆ&×
Ñ
©¨%«¸RÈÔ
M€Cá&Ó(€G÷7ñ 7ò:ð ñQó ðQð ñ!ó ð!ò1ð €KÔð (¨<Ñ"8õ ÷
ò r2   r~   c                   óH   — e Zd Zd„ Zed„ «       Zed„ «       Zed„ «       Zd„ Z	y)ÚEmailConfirmationHMACc                 ó   — || _         y r6   rˆ   )r8   rt   s     r3   Ú__init__zEmailConfirmationHMAC.__init__Ä   s
   € Ø*ˆÕr2   c                 ó   — t        |«      S r6   )r£   )rŒ   rt   s     r3   rY   zEmailConfirmationHMAC.createÇ   s   € ä$ ]Ó3Ð3r2   c                 ót   — t        j                  | j                  j                  t        j
                  ¬«      S )N)ÚobjÚsalt)r   Údumpsrt   rA   r   ÚSALTr7   s    r3   r‚   zEmailConfirmationHMAC.keyË   s%   € ä�}‰} ×!3Ñ!3×!6Ñ!6¼\×=NÑ=NÔOÐOr2   c                 óD  — 	 dt         j                  z  }t        j                  ||t         j                  ¬«      }t        t        j                  j                  |d¬«      «      }|S # t        j                  t        j                  t        j                  f$ r d }Y |S w xY w)Ni€Q )Úmax_ager©   F)rA   r   )r   r˜   r   Úloadsr«   r£   r   rB   ÚgetÚSignatureExpiredÚBadSignatureÚDoesNotExist)rŒ   r‚   r­   rA   Úrets        r3   r“   zEmailConfirmationHMAC.from_keyÏ   s‘   € ð		Ø"¤\×%PÑ%PÑPˆGÜ—‘˜s¨G¼,×:KÑ:KÔLˆBÜ'¬×(<Ñ(<×(@Ñ(@ÀBÐQVÐ(@Ó(WÓXˆCð ˆ
øô ×$Ñ$Ü× Ñ Ü×%Ñ%ð
ò 	ð
 ‰CØˆ
ð	ús   ‚A#A' Á'4BÂBc                  ó   — yrg   r1   r7   s    r3   r›   z!EmailConfirmationHMAC.key_expiredÝ   s   € Ør2   N)
r(   r)   r*   r¥   r    rY   Úpropertyr‚   r“   r›   r1   r2   r3   r£   r£   Ã   sJ   „ ò+ð ñ4ó ð4ð ñPó ðPð ñó ðór2   r£   c                   ó  — e Zd ZU dZee   ed<   ej                  ed<   ee	   ed<   e
ed<   ee   ed<   e	ed<   eed<   ee   ed	<   	 	 	 	 	 	 	 ddeej                     d	ee   dee	   de
dee   dee	   dee   fd„Zd„ Zed„ «       Zy
)ÚLogina  
    Represents a user that is in the process of logging in.

    Keyword arguments:

    signup -- Indicates whether or not sending the
    email is essential (during signup), or if it can be skipped (e.g. in
    case email verification is optional and we are only logging in).
    r   Úemail_verificationÚsignal_kwargsrW   r"   ÚstateÚinitiated_atÚredirect_urlNc	                 óØ   — || _         |st        j                  }|| _        || _        || _        || _        || _        |€i n|| _        |r|| _
        y t        j                  «       | _
        y r6   )r   r   ÚEMAIL_VERIFICATIONr¸   r¼   r¹   rW   r"   rº   Útimer»   )	r8   r   r¸   r¼   r¹   rW   r"   rº   r»   s	            r3   r¥   zLogin.__init__÷   sd   € ð ˆŒ	Ù!Ü!-×!@Ñ!@ÐØ"4ˆÔØ(ˆÔØ*ˆÔØˆŒØˆŒ
Ø ˜=‘R¨eˆŒ
Ù,8˜LˆÕ¼d¿i¹i»kˆÕr2   c           	      ód  — ddl m} | j                  }|�6|j                  d«      }|�#|j	                  «       }|j                  «       |d<   | j                  r || j                  «      nd | j                  | j                  | j                  | j                  || j                  | j                  dœ}|S )Nr   )Úuser_pk_to_url_strÚsociallogin)Úuser_pkr¸   rW   r¼   r"   r¹   rº   r»   )rQ   rÁ   r¹   r¯   ÚcopyÚ	serializer   r¸   rW   r¼   r"   rº   r»   )r8   rÁ   r¹   rÂ   Údatas        r3   rÅ   zLogin.serialize  s§   € Ý<ð ×*Ñ*ˆØÐ$Ø'×+Ñ+¨MÓ:ˆKØÐ&Ø -× 2Ñ 2Ó 4�Ø/:×/DÑ/DÓ/F�˜mÑ,ð 9=¿	º	Ñ)¨$¯)©)Ô4ÀtØ"&×"9Ñ"9Ø—k‘kØ ×-Ñ-Ø—Z‘ZØ*Ø—Z‘ZØ ×-Ñ-ñ	
ˆð ˆr2   c           
      óŠ  — ddl m} d }|d   }|�8t        «       j                  j	                   ||«      ¬«      j                  «       }	 |d   }|�=|j                  d«      }|�*ddlm} |j                  «       }|j                  |«      |d<   t        ||d   |d	   |d
   ||d   |d   ¬«      S # t        $ r t        «       ‚w xY w)Nr   )Úurl_str_to_user_pkrÃ   r@   r¹   rÂ   )ÚSocialLoginr¸   r¼   rW   rº   r»   )r   r¸   r¼   rW   r¹   rº   r»   )rQ   rÈ   r   rB   rD   rc   r¯   Úallauth.socialaccount.modelsrÉ   rÄ   Údeserializer·   ÚKeyErrorÚ
ValueError)rŒ   rÆ   rÈ   r   rÃ   r¹   rÂ   rÉ   s           r3   rË   zLogin.deserialize$  së   € å<àˆØ�y‘/ˆØÐäÓ ×(Ñ(×/Ñ/Ñ3EÀgÓ3NÐ/ÓO×UÑUÓWð ð	à  Ñ1ˆMØÐ(Ø+×/Ñ/°Ó>�ØÐ*ÝHà$1×$6Ñ$6Ó$8�MØ3>×3JÑ3JÈ;Ó3W�M -Ñ0äØØ#'Ð(<Ñ#=Ø! .Ñ1Ø˜H‘~Ø+Ø˜7‘mØ! .Ñ1ôð øô ò 	Ü“,Ðð	ús   Á	A$B. Â.C)NNNFNNN)r(   r)   r*   Ú__doc__r   r   Ú__annotations__r   ÚEmailVerificationMethodr   ÚboolÚstrÚfloatr¥   rÅ   r    rË   r1   r2   r3   r·   r·   á   só   … ñð Ð#Ñ
$Ó$Ø$×<Ñ<Ó<Ø˜D‘>Ó!ØƒLØ�C‰=ÓØƒKØÓØ˜3‘-Óð
 NRØ&*Ø(,ØØ#Ø $Ø(,ñJð % \×%IÑ%IÑJðJð ˜s‘mð	Jð
   ‘~ðJð ðJð ˜‰}ðJð ˜‰~ðJð ˜u‘oóJò,ð. ñó ñr2   r·   c                  ór   — t         j                  rddlm}  | S t         j                  rt
        }|S t        }|S )Nr   )ÚEmailVerificationModel)r   Ú"EMAIL_VERIFICATION_BY_CODE_ENABLEDÚ9allauth.account.internal.flows.email_verification_by_coderÕ   ÚEMAIL_CONFIRMATION_HMACr£   r~   )rÕ   r\   s     r3   rX   rX   F  s9   € Ü×6Ò6õ	
ð &Ð%Ü	×	-Ò	-Ü%ˆð €Lô "ˆØ€Lr2   )'r–   r¿   Útypingr   r   Údjango.confr   Údjango.contrib.authr   Údjango.contrib.auth.modelsr   Údjango.corer   Ú	django.dbr	   Údjango.db.modelsr
   Údjango.db.models.constraintsr   Údjango.utilsr   Údjango.utils.translationr   r+   Úallauth.accountr   r   Úallauth.account.adapterr   Úallauth.account.managersr   r   ÚModelr   rq   r~   r£   r·   rX   r1   r2   r3   ú<module>rç      s„   ðÛ Û ß !å  Ý .Ý 7Ý Ý Ý Ý 9Ý !Ý 6ç 1Ý /÷ôd:�6—<‘<ô d:÷N
ñ 
ô&/Ð.°·±ô /ôdÐ2ô ÷<bñ bóJr2   