Ë
    ûûàg³  ã                   ó  — d dl Z d dlmZmZ d dlmZ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 dlmZ d dlmZ d d	lmZ d
Zd„ Zdedeeef   fd„Zdedeeef   dede	fd„Zdedede	fd„Zdedede	fd„Zdedefd„Zdedefd„Zy)é    N)ÚAnyÚDict)Ú
exceptionsÚ
validators)ÚHttpRequestÚHttpResponse)Úapp_settings)Úget_adapter)ÚLoginMethod)ÚLogin)ÚImmediateHttpResponseÚaccount_authentication_methodsc                 óú   — | j                   j                  t        g «      }|t        j                  «       dœ}|j	                  «       D ]  \  }}|€Œ	|||<   Œ |j                  |«       || j                   t        <   y)ai  Here we keep a log of all authentication methods used within the current
    session.  Important to note is that having entries here does not imply that
    a user is fully signed in. For example, consider a case where a user
    authenticates using a password, but fails to complete the 2FA challenge.
    Or, a user successfully signs in into an inactive account or one that still
    needs verification. In such cases, ``request.user`` is still anonymous, yet,
    we do have an entry here.

    Example data::

        {'method': 'password',
         'at': 1701423602.7184925,
         'username': 'john.doe'}

        {'method': 'socialaccount',
         'at': 1701423567.6368647,
         'provider': 'amazon',
         'uid': 'amzn1.account.K2LI23KL2LK2'}

        {'method': 'mfa',
         'at': 1701423602.6392953,
         'id': 1,
         'type': 'totp'}

    )ÚmethodÚatN)ÚsessionÚgetÚ"AUTHENTICATION_METHODS_SESSION_KEYÚtimeÚitemsÚappend)Úrequestr   Ú
extra_dataÚmethodsÚdataÚkÚvs          úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/account/internal/flows/login.pyÚrecord_authenticationr      sw   € ð4 �o‰o×!Ñ!Ô"DÀbÓI€GàÜ�i‰i‹kñ€Dð × Ñ Ó"ò ‰ˆˆ1Ø‰=ØˆD�ŠGðð ‡N�N�4ÔØ:A€G‡O�OÔ6Ò7ó    ÚloginÚreturnc                 ó†   — t        | j                  | j                  | j                  | j                  | j
                  ¬«      S )zc
    TODO: Just break backwards compatibility and pass only `login` to
    `pre/post_login()`.
    )Úemail_verificationÚredirect_urlÚsignal_kwargsÚsignupÚemail)Údictr$   r%   r&   r'   r(   ©r!   s    r   Ú_get_login_hook_kwargsr+   8   s:   € ô
 Ø ×3Ñ3Ø×'Ñ'Ø×)Ñ)Ø�|‰|Ø�k‰kôð r    r   Úcredentialsc                 ó    — dD �ci c]%  }|j                  |«      r||j                  |«      “Œ' }}t        | fddi|¤Ž t        | |«      S c c}w )N)r(   Úusernamer   Úpassword)r   r   Úperform_login)r   r,   r!   Úfieldr   s        r   Úperform_password_loginr2   F   sa   € ð
 +öàØ�?‰?˜5Ô!ð 	ˆ{�‰˜uÓ%Ñ%ð€Jð ô
 ˜'ÑC¨*ÐC¸
ÒCÜ˜ %Ó(Ð(ùòs   …*Ac                 óˆ   — t        «       }t        |«      } |j                  | |j                  fi |¤Ž}|r|S t	        | |«      S )N)r
   r+   Ú	pre_loginÚuserÚresume_login)r   r!   ÚadapterÚhook_kwargsÚresponses        r   r0   r0   R   sE   € Ü‹m€GÜ(¨Ó/€KØ ˆw× Ñ  ¨%¯*©*ÑD¸ÑD€HÙØˆÜ˜ Ó'Ð'r    c                 ó˜  — ddl m} t        «       } || |«      }	 |j                  «       }|r|S |j	                  | |j
                  «       t        |«      } |j                  | |j
                  fi |¤Ž}|r|S 	 |S # t        $ rE}t        j                  rddlm} t        |j                  |«      r|‚|j                  }Y d }~|S d }~ww xY w)Nr   )ÚLoginStageController)ÚAPIResponse)Úallauth.account.stagesr;   r
   Úhandler!   r5   r+   Ú
post_loginr   Úallauth_settingsÚHEADLESS_ENABLEDÚ*allauth.headless.internal.restkit.responser<   Ú
isinstancer9   )	r   r!   r;   r7   Úctrlr9   r8   Úer<   s	            r   r6   r6   [   s¼   € Ý;ä‹m€GÙ ¨Ó/€DðØ—;‘;“=ˆÙØˆOØ�‰�g˜uŸz™zÔ*Ü,¨UÓ3ˆØ%�7×%Ñ% g¨u¯z©zÑI¸[ÑIˆÙØˆOð ð €Oøô !ò Ü×,Ò,ÝNä˜!Ÿ*™* kÔ2Ø�Ø—:‘:ŒØ€Oûðús   ›A; ¯AA; Á;	C	Â:CÃC	c                 ó$   — ddl m}  || |«      ryy)Nr   )Úis_verification_rate_limitedTF)Ú1allauth.account.internal.flows.email_verificationrG   )r   r!   rG   s      r   Úis_login_rate_limitedrI   s   s   € õñ $ G¨UÔ3ØØr    c                 ó`  — t        t        j                  «      dk(  r"t        t	        t        j                  «      «      S t
        j                  t        j                  v r&	 t        j                  | «       t
        j                  S t
        j                  t        j                  v r:	 t        «       j                  d¬«      j                  | «       t
        j                  S t
        j                  S # t        j                  $ r Y Œw xY w# t        j                  $ r Y t
        j                  S w xY w)Né   T)Úrequired)Úlenr	   ÚLOGIN_METHODSÚnextÚiterr   ÚEMAILr   Úvalidate_emailr   ÚValidationErrorÚPHONEr
   Úphone_form_fieldÚcleanÚUSERNAMEr*   s    r   Úderive_login_methodrX   }   sð   € Ü
Œ<×%Ñ%Ó&¨!Ò+Ü”Dœ×3Ñ3Ó4Ó5Ð5Ü×ÑœL×6Ñ6Ñ6ð	Ü×%Ñ% eÔ,Ü×$Ñ$Ð$ô ×ÑœL×6Ñ6Ñ6ð	Ü‹M×*Ñ*°DÐ*Ó9×?Ñ?ÀÔFÜ×$Ñ$Ð$ô ×ÑÐøô ×)Ñ)ò 	Ùð	ûô ×)Ñ)ò 	ØÜ×ÑÐð	ús$   Á $C/ Â&8D Ã/DÄDÄD-Ä,D-) r   Útypingr   r   Údjango.corer   r   Údjango.httpr   r   Úallauthr	   r@   Úallauth.accountÚallauth.account.adapterr
   Úallauth.account.app_settingsr   Úallauth.account.modelsr   Úallauth.core.exceptionsr   r   r   Ústrr+   r2   r0   r6   ÚboolrI   rX   © r    r   ú<module>re      sÕ   ðÛ ß ç .ß 1å 4Ý (Ý /Ý 4Ý (Ý 9ð &FÐ "ò#BðL %ð ¨D°°c°©Nó ð	)Øð	)Ø'+¨C°¨H¡~ð	)Ø>Cð	)àó	)ð(˜;ð (¨uð (¸ó (ð˜+ð ¨eð ¸ó ð0¨%ð °Dó ð ˜sð   {ô  r    