Ë
    ûûàgº;  ã                   óÈ  — d dl mZmZmZ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 d dlmZ d dlmZ d dlZd d	lmZ d d
lmZ d dlmZmZmZ d dlmZ d dl mZm!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z( ejR                  s ed«      ‚ G d„ dejT                  «      Z+ G d„ dejX                  «      Z- G d„ dejX                  «      Z. G d„ dejX                  «      Z/ G d„ d«      Z0y)é    )ÚAnyÚDictÚListÚOptional)Úsettings)ÚauthenticateÚget_user_model)Úget_current_site)ÚImproperlyConfiguredÚPermissionDenied)Úmodels)Úgettext_lazyN)Úapp_settings)ÚEmailAddress)Úfilter_users_by_emailÚget_next_redirect_urlÚsetup_user_email©Úcontext)r   Ú	providersÚsignals)Úget_adapter)Ústatekit)Úget_request_paramzAallauth.socialaccount not installed, yet its models are imported.c                   ó   — e Zd Zd„ Zy)ÚSocialAppManagerc                 ó¤   — t         j                  j                  r't        |«      }| j	                  |j
                  ¬«      S | j                  «       S )N)Ú	sites__id)Úallauthr   ÚSITES_ENABLEDr
   ÚfilterÚidÚall)ÚselfÚrequestÚsites      úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/models.pyÚon_sitezSocialAppManager.on_site    s<   € Ü×Ñ×-Ò-Ü# GÓ,ˆDØ—;‘;¨¯©�;Ó1Ð1Ø�x‰x‹zÐó    N)Ú__name__Ú
__module__Ú__qualname__r(   © r)   r'   r   r      s   „ ór)   r   c                   ó  — e Zd Z e«       Z ej                   ed«      d¬«      Z ej                   ed«      dd¬«      Z	 ej                   ed«      d	¬«      Z
 ej                   ed
«      d ed«      ¬«      Z ej                   ed«      dd ed«      ¬«      Z ej                   ed«      dd ed«      ¬«      Z ej                  ed¬«      Zej$                  j&                  r ej(                  dd¬«      Z G d„ d«      Zd„ Zd„ Zy)Ú	SocialAppÚprovideré   ©Úverbose_nameÚ
max_lengthzprovider IDéÈ   T)r3   r4   ÚblankÚnameé(   z	client idé¿   zApp ID, or consumer key)r3   r4   Ú	help_textz
secret keyz-API secret, client secret, or consumer secret)r3   r4   r6   r:   ÚkeyÚKey)Údefaultr6   z
sites.Site)r6   c                   ó,   — e Zd Z ed«      Z ed«      Zy)úSocialApp.Metazsocial applicationzsocial applicationsN)r*   r+   r,   Ú_r3   Úverbose_name_pluralr-   r)   r'   ÚMetar?   P   s   „ ÙÐ-Ó.ˆÙÐ 5Ó6Ñr)   rB   c                 ó   — | j                   S ©N)r7   ©r$   s    r'   Ú__str__zSocialApp.__str__T   s   € Ø�y‰yÐr)   c                 óh   — t         j                  j                  | j                  «      } ||| ¬«      S )N)r%   Úapp)r   ÚregistryÚ	get_classr0   )r$   r%   Úprovider_classs      r'   Úget_providerzSocialApp.get_providerW   s)   € Ü"×+Ñ+×5Ñ5°d·m±mÓDˆÙ g°4Ô8Ð8r)   N)r*   r+   r,   r   Úobjectsr   Ú	CharFieldr@   r0   Úprovider_idr7   Ú	client_idÚsecretr;   Ú	JSONFieldÚdictr   r   r   r    ÚManyToManyFieldÚsitesrB   rF   rL   r-   r)   r'   r/   r/   '   s'  „ ÙÓ €Gð  ˆv×ÑÙ�z“]Øô€Hð #�&×"Ñ"Ù�}Ó%ØØô€Kð
 ˆ6×Ñ©¨6«¸rÔB€DØ �× Ñ Ù�{“^ØÙÐ-Ó.ô€Ið
 ˆV×ÑÙ�|“_ØØÙÐCÓDô	€Fð ˆ&×
Ñ
Ù�u“X¨#°TÁQÀuÃXô€Cð  ˆv×Ñ¨°DÔ9€Hà×Ñ×)Ò)ð
 '�×&Ñ& |¸4Ô@ˆ÷7ñ 7òó9r)   r/   c                   ó®  — e Zd Z ej                  ej                  ej                  ¬«      Z ej                   e
d«      d¬«      Z ej                   e
d«      ej                  ¬«      Z ej                   e
d«      d¬«      Z ej                   e
d	«      d¬
«      Z ej$                   e
d«      e¬«      Z G d„ d«      Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zy)ÚSocialAccount©Ú	on_deleter0   r5   r2   Úuidz
last loginT)r3   Úauto_nowzdate joined)r3   Úauto_now_addz
extra data)r3   r=   c                   ó0   — e Zd ZdZ ed«      Z ed«      Zy)úSocialAccount.Meta©r0   rZ   zsocial accountzsocial accountsN©r*   r+   r,   Úunique_togetherr@   r3   rA   r-   r)   r'   rB   r^   {   s   „ Ø-ˆÙÐ)Ó*ˆÙÐ 1Ó2Ñr)   rB   c                 ó   — t        | ¬«      S )N)Úaccount)r   rE   s    r'   r   zSocialAccount.authenticate€   s   € Ü DÔ)Ð)r)   c                 ó   — ddl m}  || «      S )Né   )Úsocialaccount_user_display)Úhelpersrf   )r$   rf   s     r'   rF   zSocialAccount.__str__ƒ   s   € Ý7á)¨$Ó/Ð/r)   c                 ó>   — | j                  «       j                  «       S rD   )Úget_provider_accountÚget_profile_urlrE   s    r'   rj   zSocialAccount.get_profile_urlˆ   s   € Ø×(Ñ(Ó*×:Ñ:Ó<Ð<r)   c                 ó>   — | j                  «       j                  «       S rD   )ri   Úget_avatar_urlrE   s    r'   rl   zSocialAccount.get_avatar_url‹   s   € Ø×(Ñ(Ó*×9Ñ9Ó;Ð;r)   Nc                 ó¨   — t        | dd «      }|r|S t        «       }|j                  |xs t        j                  | j
                  ¬«      x}| _        |S )NÚ	_provider)r0   )Úgetattrr   rL   r   r%   r0   rn   )r$   r%   r0   Úadapters       r'   rL   zSocialAccount.get_providerŽ   sV   € Ü˜4 ¨dÓ3ˆÙØˆOÜ“-ˆØ$+×$8Ñ$8ØÒ&”w—‘°·±ð %9ó %
ð 	
ˆ�4”>ð ˆr)   c                 ó@   — | j                  «       j                  | «      S rD   )rL   Úwrap_accountrE   s    r'   ri   z"SocialAccount.get_provider_account˜   s   € Ø× Ñ Ó"×/Ñ/°Ó5Ð5r)   rD   )r*   r+   r,   r   Ú
ForeignKeyr   ÚAUTH_USER_MODELÚCASCADEÚuserrN   r@   r0   r   ÚUID_MAX_LENGTHrZ   ÚDateTimeFieldÚ
last_loginÚdate_joinedrR   rS   Ú
extra_datarB   r   rF   rj   rl   rL   ri   r-   r)   r'   rW   rW   \   sÕ   „ Øˆ6×Ñ˜X×5Ñ5ÀÇÁÔP€Dð  ˆv×ÑÙ�z“]Øô€Hð( ˆ&×
Ñ
Ù�u“X¨,×*EÑ*Eô€Cð &�×%Ñ%±1°\³?ÈTÔR€JØ&�&×&Ñ&±A°mÓ4DÐSWÔX€KØ!�×!Ñ!©q°«ÈÔM€J÷3ñ 3ò
*ò0ò
=ò<óó6r)   rW   c                   óZ  — e Zd Z ej                  eej                  dd¬«      Z ej                  eej                  ¬«      Z
 ej                   ed«       ed«      ¬«      Z ej                  d ed«       ed«      ¬	«      Z ej                  dd ed
«      ¬«      Z G d„ d«      Zd„ Zy)ÚSocialTokenT)rY   r6   ÚnullrX   Útokenz/"oauth_token" (OAuth1) or access token (OAuth2))r3   r:   ztoken secretz7"oauth_token_secret" (OAuth1) or refresh token (OAuth2))r6   r3   r:   z
expires at)r6   r~   r3   c                   ó0   — e Zd ZdZ ed«      Z ed«      Zy)úSocialToken.Meta)rH   rc   zsocial application tokenzsocial application tokensNr`   r-   r)   r'   rB   r�   ¬   s   „ Ø,ˆÙÐ3Ó4ˆÙÐ ;Ó<Ñr)   rB   c                 óN   — | j                   j                  ›d| j                  ›d�S )Nz (ú))Ú_metar3   ÚpkrE   s    r'   rF   zSocialToken.__str__±   s   € Ø ŸJ™J×3Ó3°T·W³WÐ=Ð=r)   N)r*   r+   r,   r   rs   r/   ÚSET_NULLrH   rW   ru   rc   Ú	TextFieldr@   r   Útoken_secretrx   Ú
expires_atrB   rF   r-   r)   r'   r}   r}   œ   s¯   „ Ø
ˆ&×
Ñ
˜I°·±ÈÐSWÔ
X€CØˆf×Ñ ¸¿¹ÔH€GØˆF×ÑÙ�w“ZÙÐEÓFô€Eð $�6×#Ñ#ØÙ�~Ó&ÙÐMÓNô€Lð
 &�×%Ñ%Ø˜©A¨l«Oô€J÷=ñ =ó
>r)   r}   c            	       ó¾  — e Zd ZU dZeed<   ee   ed<   ee	   ed<   e
ed<   ee   ed<   	 	 	 	 	 ddee   dee   deee	      fd„Zdd
„Zed	efd„«       Zd	e
eef   fd„Zede
eef   d	d fd„«       Zdded	dfd„Zed	efd„«       Zdd„Zd	efd„Zdd„Zdd„Zdd„Zd	ee   fd„Zed	e
eef   fd„«       Zeddee
eef      d	efd„«       Zed	ee
eef      fd„«       Zy)ÚSocialLogina&  
    Represents a social user that is in the process of being logged
    in. This consists of the following information:

    `account` (`SocialAccount` instance): The social account being
    logged in. Providers are not responsible for checking whether or
    not an account already exists or not. Therefore, a provider
    typically creates a new (unsaved) `SocialAccount` instance. The
    `User` instance pointed to by the account (`account.user`) may be
    prefilled by the provider for use as a starting point later on
    during the signup process.

    `token` (`SocialToken` instance): An optional access token token
    that results from performing a successful authentication
    handshake.

    `state` (`dict`): The state to be preserved during the
    authentication handshake. Note that this state may end up in the
    url -- do not put any secrets in here. It currently only contains
    the url to redirect to after login.

    `email_addresses` (list of `EmailAddress`): Optional list of
    email addresses retrieved from the provider.
    rc   r   Úemail_addressesÚstateÚ_did_authenticate_by_emailNc                 ó¢   — || _         |r|j                  �|j                  |k(  sJ ‚|| _        || _        |r|| _        |r|ng | _        i | _        y rD   )r0   rc   r   rv   rŒ   r�   )r$   rv   rc   r   rŒ   r0   s         r'   Ú__init__zSocialLogin.__init__Õ   sT   € ð !ˆŒÙØ—=‘=Ð(¨E¯M©M¸WÒ,DÐDÐDØˆŒ
ØˆŒ	ÙØ"ˆDŒLÙ2A™ÀrˆÔØˆ�
r)   Úreturnc                 ó  — || _         | j                  |d¬«       t        j                  j	                  t
        || ¬«       t        «       j                  d| j                   | j                  | j                  j                  «       dœ¬«       y )NT)Úconnect©Úsenderr%   Úsocialloginz%socialaccount/email/account_connected)rc   r0   r   )
rv   Úsaver   Úsocial_account_addedÚsendr‹   r   Úsend_notification_mailrc   rL   )r$   r%   rv   s      r'   r“   zSocialLogin.connectç   sv   € ØˆŒ	Ø�	‰	�' 4ˆ	Ô(Ü×$Ñ$×)Ñ)Ü¨¸Tð 	*ô 	
ô 	‹×,Ñ,Ø3Ø�I‰IàŸ<™<Ø ŸL™L×5Ñ5Ó7ñð 	-õ 	
r)   c                 óJ   — t        | j                  j                  d«      «      S )NÚheadless)Úboolr�   ÚgetrE   s    r'   Úis_headlesszSocialLogin.is_headless÷   s   € ä�D—J‘J—N‘N :Ó.Ó/Ð/r)   c                 óZ  — t        «       j                  }t        | j                  j	                  «        || j
                  «       || j                  «      | j                  | j                  D �cg c]
  } ||«      ‘Œ c}¬«      }| j                  r || j                  «      |d<   |S c c}w )N)r0   rc   rv   r�   rŒ   r   )
r   Úserialize_instancerS   r0   Ú	serializerc   rv   r�   rŒ   r   )r$   r¡   ÚeaÚrets       r'   r¢   zSocialLogin.serializeû   s‰   € Ü(›]×=Ñ=ÐÜØ—]‘]×,Ñ,Ó.Ù& t§|¡|Ó4Ù# D§I¡IÓ.Ø—*‘*Ø>B×>RÑ>RÖS¸Ñ/°Õ3ÒSô
ˆð �:Š:Ù-¨d¯j©jÓ9ˆC�‰LØˆ
ùò	 Ts   Á.B(Údatac                 ó”  — ddl m} t        «       j                  }|j	                  |d   «      } |t
        |d   «      } |t        «       |d   «      }d|v r |t        |d   «      }nd }g }|d   D ]   }	 |t        |	«      }
|j                  |
«       Œ"  | «       }||_
        ||_        ||_        ||_        ||_        |d   |_        |S )	Nr   )ÚProviderr0   rc   rv   r   rŒ   r�   )Ú-allauth.socialaccount.providers.base.providerr§   r   Údeserialize_instanceÚdeserializerW   r	   r}   r   Úappendr0   r   rc   rv   rŒ   r�   )Úclsr¥   r§   r©   r0   rc   rv   r   rŒ   r£   Úemail_addressr¤   s               r'   rª   zSocialLogin.deserialize  sØ   € åJä*›}×AÑAÐØ×'Ñ'¨¨ZÑ(8Ó9ˆÙ&¤}°d¸9±oÓFˆÙ#¤NÓ$4°d¸6±lÓCˆØ�d‰?Ù(¬°d¸7±mÓD‰EàˆEØˆØÐ(Ñ)ò 	2ˆBÙ0´¸rÓBˆMØ×"Ñ" =Õ1ð	2ñ ‹eˆØˆŒØˆŒ	ØˆŒØˆŒØ-ˆÔØ˜‘MˆŒ	Øˆ
r)   r“   c                 óh  — | j                   }|j                  «        || j                  _         | j                  j                  «        t        j                  rA| j
                  r5| j                  | j
                  _        | j
                  j                  «        |ryt        ||| j                  «       y)z�
        Saves a new account. Note that while the account is new,
        the user may be an existing one (when connecting accounts)
        N)rv   r—   rc   r   ÚSTORE_TOKENSr   r   rŒ   )r$   r%   r“   rv   s       r'   r—   zSocialLogin.save!  sw   € ð
 �y‰yˆØ�	‰	ŒØ ˆ�‰ÔØ�‰×ÑÔÜ×$Ò$¨¯ªØ!%§¡ˆD�J‰JÔØ�J‰J�O‰OÔÙàä˜W d¨D×,@Ñ,@ÕAr)   c                 ó¼   — | j                   j                  €yt        «       j                  j	                  | j                   j                  ¬«      j                  «       S )zuWhen `False`, this social login represents a temporary account, not
        yet backed by a database record.
        F)r…   )rv   r…   r	   rM   r!   ÚexistsrE   s    r'   Úis_existingzSocialLogin.is_existing3  sC   € ð
 �9‰9�<‰<ÐØÜÓ×'Ñ'×.Ñ.°$·)±)·,±,Ð.Ó?×FÑFÓHÐHr)   c                 óT   — d| _         | j                  «       s| j                  «        yy)zcLook up the existing local user account to which this social login
        points, if any.
        N)rŽ   Ú_lookup_by_socialaccountÚ_lookup_by_emailrE   s    r'   ÚlookupzSocialLogin.lookup<  s)   € ð +/ˆÔ'Ø×,Ñ,Ô.Ø×!Ñ!Õ#ð /r)   c                 ó  — | j                   rJ ‚	 t        j                  j                  | j                  j
                  | j                  j                  ¬«      }| j                  j                  |_        || _        | j                  j                  | _        |j                  «        t        j                  j                  t        t        j                  | ¬«       | j!                  «        y# t        j"                  $ r Y yw xY w)Nr_   r”   TF)r²   rW   rM   rž   rc   r0   rZ   r{   rv   r—   r   Úsocial_account_updatedr™   r‹   r   r%   Ú_store_tokenÚDoesNotExist)r$   Úas     r'   r´   z$SocialLogin._lookup_by_socialaccountD  sË   € Ø×#Ò#Ð#Ð#ð	Ü×%Ñ%×)Ñ)ØŸ™×.Ñ.°D·L±L×4DÑ4Dð *ó ˆAð  Ÿ<™<×2Ñ2ˆAŒLØˆDŒLØŸ™×)Ñ)ˆDŒIØ�F‰FŒHÜ×*Ñ*×/Ñ/Ü"¬G¯O©OÈð 0ô ð ×ÑÔØøÜ×)Ñ)ò 	Ùð	ús   �CC+ Ã+DÄ Dc                 óÌ  — t         j                  r| j                  sy | j                  j                  rJ ‚| j                  j                  }|r|j                  sd }	 t
        j                  j                  | j                  |¬«      }| j                  j                  |_        | j                  j                  r| j                  j                  |_	        | j                  j                  |_
        |j                  «        || _        y # t
        j                  $ rI | j                  | j                  _        || j                  _        | j                  j                  «        Y y w xY w)N)rc   rH   )r   r¯   r   r…   rH   r}   rM   rž   rc   rˆ   r‰   r—   rº   )r$   rH   Úts      r'   r¹   zSocialLogin._store_tokenW  sô   € ä×(Ò(°·
²
ØØ—:‘:—=’=Ð Ð Ø�j‰j�n‰nˆÙ�s—v’vàˆCð	Ü×#Ñ#×'Ñ'°·±À#Ð'ÓFˆAØ—j‘j×&Ñ&ˆAŒGØ�z‰z×&Ò&ð "&§¡×!8Ñ!8�”ØŸ:™:×0Ñ0ˆAŒLØ�F‰FŒHØˆD�JøÜ×'Ñ'ò 	Ø!%§¡ˆD�J‰JÔØ ˆD�J‰JŒNØ�J‰J�O‰OÖð	ús   ÁB)D ÄAE#Å"E#c                 óö   — | j                   D �cg c]  }|j                  sŒ|j                  ‘Œ }}|D ]?  }t        «       j	                  | |«      sŒt        |d¬«      }|sŒ.|d   | _        || _         y  y c c}w )NT)Úprefer_verifiedr   )rŒ   ÚverifiedÚemailr   Úcan_authenticate_by_emailr   rv   rŽ   )r$   ÚeÚemailsrÁ   Úuserss        r'   rµ   zSocialLogin._lookup_by_emailo  st   € Ø#'×#7Ñ#7ÖF˜a¸1¿:»:�!—'“'ÐFˆÐFØò 	ˆEÜ“=×:Ñ:¸4ÀÔGØÜ)¨%ÀÔFˆEÚØ! !™H�”	Ø27�Ô/Ùñ	ùò Gs
   �A6¡A6c                 óÜ   — ddl m} | j                  rZ ||| j                  | j                  «       t        j
                  r+| j                  t        j                  | j                  «       y y y )Nr   )Úwipe_password)	Ú9allauth.socialaccount.internal.flows.email_authenticationrÇ   rŽ   rv   r   Ú!EMAIL_AUTHENTICATION_AUTO_CONNECTr“   r   r%   )r$   r%   rÇ   s      r'   Ú_accept_loginzSocialLogin._accept_loginz  sQ   € õ	
ð ×*Ò*Ù˜' 4§9¡9¨d×.MÑ.MÔNÜ×=Ò=Ø—‘œWŸ_™_¨d¯i©iÕ8ð >ð +r)   c                 ó<   — | j                   j                  d«      }|S )NÚnext)r�   rž   )r$   r%   Úurls      r'   Úget_redirect_urlzSocialLogin.get_redirect_url„  s   € Ø�j‰j�n‰n˜VÓ$ˆØˆ
r)   c                 óŽ   — i }t        |«      }|r||d<   t        |dd«      |d<   t        |dd«      |d<   t        |dd«      |d<   |S )zM
        TODO: Deprecated! To be integrated with provider.redirect()
        rÌ   ÚprocessÚloginÚscopeÚ Úauth_params)r   r   )r¬   r%   r�   Únext_urls       r'   Ústate_from_requestzSocialLogin.state_from_requestˆ  s\   € ð
 ˆÜ(¨Ó1ˆÙØ$ˆE�&‰MÜ,¨W°iÀÓIˆˆiÑÜ*¨7°G¸RÓ@ˆˆg‰Ü0°¸-ÈÓLˆˆmÑØˆr)   c                 óT   — |€| j                  |«      }t        j                  ||«      S rD   )rÖ   r   Ústash_state©r¬   r%   r�   s      r'   rØ   zSocialLogin.stash_state–  s*   € àˆ=à×*Ñ*¨7Ó3ˆEÜ×#Ñ# G¨UÓ3Ð3r)   c                 óH   — t        j                  |«      }|€
t        «       ‚|S rD   )r   Úunstash_last_stater   rÙ   s      r'   Úunstash_statezSocialLogin.unstash_state�  s%   € ä×+Ñ+¨GÓ4ˆØˆ=Ü"Ó$Ð$Øˆr)   )NNNNN)r‘   N)FrD   ) r*   r+   r,   Ú__doc__rW   Ú__annotations__r   r}   r   r   r   Ústrr�   r“   Úpropertyr�   rŸ   r   r¢   Úclassmethodrª   r—   r²   r¶   r´   r¹   rµ   rÊ   rÎ   rÖ   rØ   rÜ   r-   r)   r'   r‹   r‹   µ   s¸  … ñð2 ÓØ�KÑ Ó Ø˜,Ñ'Ó'ØƒKØ (¨¡Ó-ð Ø+/Ø'+Ø8<Øñð ˜-Ñ(ðð ˜Ñ$ð	ð
 " $ |Ñ"4Ñ5óó$
ð  ð0˜Tò 0ó ð0ð˜4  S ™>ó ð ð˜t C¨ H™~ð °-ò ó ðñ0B Tð B°dó Bð$ ðI˜Tò Ió ðIó$ð¨$ó ó&ó0	ó9ð¨8°C©=ó ð ð¨D°°c°©Nò ó ðð ñ4¨°$°s¸C°x±.Ñ)Að 4ÈSò 4ó ð4ð ð x°°S¸#°X±Ñ'?ò ó ñr)   r‹   )1Útypingr   r   r   r   Údjango.confr   Údjango.contrib.authr   r	   Údjango.contrib.sites.shortcutsr
   Údjango.core.exceptionsr   r   Ú	django.dbr   Údjango.utils.translationr   r@   Úallauth.app_settingsr   r   Úallauth_settingsÚallauth.account.modelsr   Úallauth.account.utilsr   r   r   Úallauth.corer   Úallauth.socialaccountr   r   Úallauth.socialaccount.adapterr   Úallauth.socialaccount.internalr   Úallauth.utilsr   ÚSOCIALACCOUNT_ENABLEDÚManagerr   ÚModelr/   rW   r}   r‹   r-   r)   r'   ú<module>rõ      s­   ðß ,Ó ,å  ß <Ý ;ß IÝ Ý 6ã Ý 4Ý /÷ñ õ
 !ß BÑ BÝ 5Ý 3Ý +ð ×-Ò-Ù
ØKóð ô
�v—~‘~ô ô29�—‘ô 29ôj=6�F—L‘Lô =6ô@>�&—,‘,ô >÷2mò mr)   