Ë
    ûûàgª  ã                   óî  — d dl Z d dlZd dlmZmZ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mZ d dl m!Z! d dl"m#Z# ddl$m%Z%m&Z&m'Z'm(Z(  ejR                  e*«      Z+ G d„ d«      Z, e
ed¬«       e
ed¬«       G d„ de,e«      «       «       Z-e-j]                  «       Z/ e
ed¬«       G d„ de,e«      «       Z0e0j]                  «       Z1 e
ed¬«       e
ed¬«       G d„ de,e«      «       «       Z2e2j]                  «       Z3 e
ed¬«       G d„ de,e«      «       Z4e4j]                  «       Z5 e
ed¬«       G d„ de,e!«      «       Z6e6j]                  «       Z7y) é    N)ÚHttpRequestÚHttpResponseÚHttpResponseRedirectÚJsonResponse)Úreverse)Úmethod_decorator)ÚView)Úcsrf_exempt)ÚOneLogin_Saml2_Settings)ÚOneLogin_Saml2_Error)Úget_adapter)Úlogin_not_required)Úhttpkit)Úcomplete_social_loginÚrender_authentication_error)Ú	AuthErrorÚAuthProcess)ÚBaseLoginView)ÚLoginSessioné   )Ú
build_authÚbuild_saml_configÚdecode_relay_stateÚget_app_or_404c                   ó   — e Zd Zd„ Zd„ Zy)ÚSAMLViewMixinc                 ó2   — t        | j                  |«      }|S ©N)r   Úrequest©ÚselfÚorganization_slugÚapps      úh/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/saml/views.pyÚget_appzSAMLViewMixin.get_app,   s   € Ü˜TŸ\™\Ð+<Ó=ˆØˆ
ó    c                 óZ   — | j                  |«      }|j                  | j                  «      S r   )r%   Úget_providerr   r    s      r$   r(   zSAMLViewMixin.get_provider0   s&   € Ø�l‰lÐ,Ó-ˆØ×Ñ §¡Ó-Ð-r&   N)Ú__name__Ú
__module__Ú__qualname__r%   r(   © r&   r$   r   r   +   s   „ òó.r&   r   Údispatch)Únamec                   ó   — e Zd Zd„ Zy)ÚACSViewc                 óÖ   — t        dd|i¬«      }t        |«      }t        |dd«      }|j                  j	                  dt        j                  |«      i«       |j                  |«       |S )NÚsaml_finish_acsr"   )ÚkwargsÚsaml_acs_sessionúsaml-acs-sessionr   )r   r   r   ÚstoreÚupdater   Úserialize_requestÚsave)r!   r   r"   ÚurlÚresponseÚacs_sessions         r$   r-   zACSView.dispatch8   sk   € ÜØØ'Ð):Ð;ô
ˆô (¨Ó,ˆÜ" 7Ð,>Ð@RÓSˆØ×Ñ× Ñ  )¬W×-FÑ-FÀwÓ-OÐ!PÔQØ×Ñ˜Ô"Øˆr&   N©r)   r*   r+   r-   r,   r&   r$   r0   r0   5   s   „ ó	r&   r0   c                   ó   — e Zd Zd„ Zy)ÚFinishACSViewc                 óæ  — | j                  |«      }t        |dd«      }d }|j                  j                  d«      }|rt	        j
                  |t        «       «      }|j                  «        |s!t        j                  d«       t        ||«      S t        ||«      }d }g }		 |j                  d ¬«       |	s|j#                  «       }	|	rO|j%                  «       xs |}t        j                  d	d
j'                  |	«      ›d|›�«       t        |||	|dœ¬«      S |j)                  «       st        ||t*        j,                  ¬«      S |j/                  ||«      }|j1                  «       }|r|j3                  ||«      |_        n«|j6                  j8                  j                  di «      j                  dd«      }|r!t        j                  d«       t        ||«      S t;        |j<                  j                  d«      «      }t>        j@                  |j4                  d<   |r||j4                  d<   tC        ||«      S # t        j                  $ r	 dg}	d}Y �Œ�t        $ r}
dg}	t!        |
«      }Y d }
~
�Œ¹d }
~
ww xY w)Nr4   r5   r   z0Unable to finish login, SAML ACS session missing)Ú
request_idÚinvalid_responsezInvalid responseÚerrorz$Error processing SAML ACS response: ú, ú: )Úsaml_errorsÚsaml_last_error_reason)Úextra_context)rC   ÚadvancedÚreject_idp_initiated_ssoTzIdP initiated SSO rejectedÚ
RelayStateÚprocessÚnext)"r(   r   r6   Úgetr   Údeserialize_requestr   ÚdeleteÚloggerrC   r   r   Úprocess_responseÚbinasciiÚErrorr   ÚstrÚ
get_errorsÚget_last_error_reasonÚjoinÚis_authenticatedr   Ú	CANCELLEDÚsociallogin_from_responseÚ get_last_response_in_response_toÚunstash_redirect_stateÚstater#   Úsettingsr   ÚPOSTr   ÚLOGINr   )r!   r   r"   Úproviderr<   Úacs_requestÚacs_request_dataÚauthÚerror_reasonÚerrorsÚeÚloginÚstate_idÚrejectÚnext_urls                  r$   r-   zFinishACSView.dispatchI   sM  € Ø×$Ñ$Ð%6Ó7ˆÜ" 7Ð,>Ð@RÓSˆØˆØ&×,Ñ,×0Ñ0°Ó;ÐÙÜ!×5Ñ5Ð6FÌËÓVˆKØ×ÑÔÙÜ�L‰LÐKÔLÜ.¨w¸ÓAÐAä˜+ xÓ0ˆØˆØˆð		"ð ×!Ñ!¨TÐ!Ô2ñ Ø—_‘_Ó&ˆFÙà×5Ñ5Ó7ÒG¸<ˆLÜ�LŠLà—9‘9˜VÕ$¡lð4ôô /ØØà#)Ø.:ñôð ð ×$Ñ$Ô&Ü.Ø˜¬×)<Ñ)<ôð ð ×2Ñ2°7¸DÓAˆð ×8Ñ8Ó:ˆÙØ"×9Ñ9¸'À8ÓLˆE�Kð —\‘\×*Ñ*×.Ñ.¨z¸2Ó>×BÑBØ*¨DóˆFñ Ü—‘Ð9Ô:Ü2°7¸HÓEÐEÜ)¨+×*:Ñ*:×*>Ñ*>¸|Ó*LÓMˆHÜ%0×%6Ñ%6ˆE�K‰K˜	Ñ"ÙØ&.�—‘˜FÑ#Ü$ W¨eÓ4Ð4øô[ �~‰~ò 	.Ø(Ð)ˆFØ-‹LÜ#ò 	"Ø�YˆFÜ˜q›6ŽLûð	"ús   Â H4 È4I0ÉI0ÉI+É+I0Nr=   r,   r&   r$   r?   r?   G   s   „ ó@5r&   r?   c                   ó   — e Zd Zd„ Zy)ÚSLSViewc                 ó  ‡‡— | j                  |«      }t        | j                  |«      }‰j                  j                  }t        ‰«      Šˆˆfd„}d }d }	 |j                  || ¬«      }|j                  «       }
|
rT|j                  «       xs |}t        j                  ddj                  |
«      ›d|›�«       t        |d¬«      }d|_        |S |s‰j!                  ‰«      }t#        |«      S # t        $ r}	t        |	«      }Y d }	~	Œ�d }	~	ww xY w)	Nc                  ó(   •— ‰ j                  ‰«       y r   )Úlogout)Úaccount_adapterr   s   €€r$   Úforce_logoutz&SLSView.dispatch.<locals>.force_logout˜   s   ø€ Ø×"Ñ" 7Õ+r&   )Údelete_session_cbÚkeep_local_sessionz$Error processing SAML SLS response: rD   rE   z
text/plain)Úcontent_typei�  )r(   r   r   ÚuserrY   Úget_account_adapterÚprocess_slor   rU   rV   rW   rQ   rC   rX   r   Ústatus_codeÚget_logout_redirect_urlr   )r!   r   r"   rb   re   Úshould_logoutrs   Úredirect_torf   rh   rg   Úresprr   s    `          @r$   r-   zSLSView.dispatch’   s  ù€ Ø×$Ñ$Ð%6Ó7ˆÜ˜$Ÿ,™,¨Ó1ˆØŸ™×5Ñ5ˆÜ-¨gÓ6ˆõ	,ð ˆØˆð	"Ø×*Ñ*Ø".À}ÐCTð +ó ˆKð
 —‘Ó"ˆÙØ×5Ñ5Ó7ÒG¸<ˆLÜ�LŠLà—9‘9˜VÕ$¡lð4ôô   ¸<ÔHˆDØ"ˆDÔØˆKÙØ)×AÑAÀ'ÓJˆKÜ# KÓ0Ð0øô $ò 	"Ü˜q›6�Lûð	"ús   ÁC. Ã.	DÃ7DÄDNr=   r,   r&   r$   rn   rn   �   s   „ ó1r&   rn   c                   ó   — e Zd Zd„ Zy)ÚMetadataViewc                 ó8  — | j                  |«      }t        | j                  |j                  j                  |«      }t        |d¬«      }|j                  «       }|j                  |«      }t        |«      dkD  rt        d|i«      }d|_
        |S t        |d¬«      S )NT)r_   Úsp_validation_onlyr   rg   iô  ztext/xml)Úcontentrv   )r(   r   r   r#   r_   r   Úget_sp_metadataÚvalidate_metadataÚlenr   rz   r   )	r!   r   r"   rb   ÚconfigÚsaml_settingsÚmetadatarg   r~   s	            r$   r-   zMetadataView.dispatch·   s˜   € Ø×$Ñ$Ð%6Ó7ˆÜ"Ø�L‰L˜(Ÿ,™,×/Ñ/Ð1Bó
ˆô 0Ø°ô
ˆð !×0Ñ0Ó2ˆØ×0Ñ0°Ó:ˆäˆv‹;˜Š?Ü ¨6Ð 2Ó3ˆDØ"ˆDÔØˆKä H¸:ÔFÐFr&   Nr=   r,   r&   r$   r€   r€   µ   s   „ óGr&   r€   c                   ó   — e Zd Zd„ Zy)Ú	LoginViewc                 ót   — | j                  | j                  d   «      }|j                  | j                  «      S )Nr"   )r%   r3   r(   r   )r!   r#   s     r$   r(   zLoginView.get_providerÏ   s/   € Ø�l‰l˜4Ÿ;™;Ð':Ñ;Ó<ˆØ×Ñ §¡Ó-Ð-r&   N)r)   r*   r+   r(   r,   r&   r$   r‹   r‹   Í   s   „ ó.r&   r‹   )8rS   ÚloggingÚdjango.httpr   r   r   r   Údjango.urlsr   Údjango.utils.decoratorsr   Údjango.viewsr	   Údjango.views.decorators.csrfr
   Úonelogin.saml2.authr   Úonelogin.saml2.errorsr   Úallauth.account.adapterr   rx   Ú#allauth.account.internal.decoratorsr   Úallauth.core.internalr   Úallauth.socialaccount.helpersr   r   Ú.allauth.socialaccount.providers.base.constantsr   r   Ú*allauth.socialaccount.providers.base.viewsr   Úallauth.socialaccount.sessionsr   Úutilsr   r   r   r   Ú	getLoggerr)   rQ   r   r0   Úas_viewÚacsr?   Ú
finish_acsrn   Úslsr€   r‰   r‹   ri   r,   r&   r$   ú<module>r¢      s˜  ðÛ Û ÷ó õ  Ý 4Ý Ý 4å 7Ý 6å FÝ BÝ )÷÷õ EÝ 7÷ó ð 
ˆ×	Ñ	˜8Ó	$€÷.ñ .ñ �+ JÔ/ÙÐ$¨:Ô6ô
ˆm˜Tó 
ó 7ó 0ð
ð ‡o�oÓ€ñ Ð$¨:Ô6ôA5�M 4ó A5ó 7ðA5ðH ×"Ñ"Ó$€
ñ �+ JÔ/ÙÐ$¨:Ô6ô1ˆm˜Tó 1ó 7ó 0ð1ðB ‡o�oÓ€ñ Ð$¨:Ô6ôG�= $ó Gó 7ðGð( ×ÑÓ!€ñ Ð$¨:Ô6ô.�˜}ó .ó 7ð.ð 	×ÑÓ�r&   