
    Uњhs                        S SK r S SKrS SKJrJrJrJr  S SKJr  S SK	J
r
  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJr  S SKJr  S SKJrJr  S SKJrJr  S SK J!r!  S SK"J#r#  SSK$J%r%J&r&J'r'J(r(  \RR                  " \*5      r+ " S S5      r,\
" \SS9\
" \SS9 " S S\,\5      5       5       r-\-R]                  5       r/\
" \SS9 " S S\,\5      5       r0\0R]                  5       r1\
" \SS9\
" \SS9 " S S\,\5      5       5       r2\2R]                  5       r3\
" \SS9 " S S\,\5      5       r4\4R]                  5       r5\
" \SS9 " S S\,\!5      5       r6\6R]                  5       r7g)     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                        \ rS rSrS rS rSrg)SAMLViewMixin   c                 2    [        U R                  U5      nU$ N)r   requestselforganization_slugapps      eD:\Anime\Ugyen\janka_web_project\venv\Lib\site-packages\allauth/socialaccount/providers/saml/views.pyget_appSAMLViewMixin.get_app   s    T\\+<=
    c                 Z    U R                  U5      nUR                  U R                  5      $ r   )r&   get_providerr    r!   s      r%   r*   SAMLViewMixin.get_provider#   s&    ll,---r(    N)__name__
__module____qualname____firstlineno__r&   r*   __static_attributes__r,   r(   r%   r   r      s    .r(   r   dispatch)namec                       \ rS rSrS rSrg)ACSView(   c                     [        SSU0S9n[        U5      n[        USS5      nUR                  R	                  S[
        R                  " U5      05        UR                  U5        U$ )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%   r2   ACSView.dispatch+   sk    '):;
 (,"7,>@RS  )W-F-Fw-O!PQ"r(   r,   Nr-   r.   r/   r0   r2   r1   r,   r(   r%   r5   r5   (   s    	r(   r5   c                       \ rS rSrS rSrg)FinishACSView:   c                 (   U R                  U5      n[        USS5      nS nUR                  R                  S5      nU(       a  [        R
                  " U[        5       5      nUR                  5         U(       d   [        R                  S5        [        X5      $ [        XS5      nS n/ n	 UR                  S S9  U	(       d  UR#                  5       n	U	(       aS  UR%                  5       =(       d    Un[        R                  S	S
R'                  U	5      < SU< 35        [        UUU	US.S9$ UR)                  5       (       d  [        X[*        R,                  S9$ UR/                  X5      nUR1                  5       nU(       a  UR3                  X5      Ul        OUR6                  R8                  R                  S0 5      R                  SS5      nU(       a   [        R                  S5        [        X5      $ [;        UR<                  R                  S5      5      n[>        R@                  UR4                  S'   U(       a  XR4                  S'   [C        X5      $ ! [        R                   a	    S/n	Sn GN[         a  n
S/n	[!        U
5      n S n
A
GNS n
A
ff = f)Nr:   r;   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)rK   advancedreject_idp_initiated_ssoTzIdP initiated SSO rejected
RelayStateprocessnext)"r*   r   r<   getr   deserialize_requestr   deleteloggerrK   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#   providerrB   acs_requestacs_request_dataautherror_reasonerrorseloginstate_idrejectnext_urls                  r%   r2   FinishACSView.dispatch<   s@   $$%67"7,>@RS&,,00;!556FVKLLKL.wAA+0		" !!T!2 __&F557G<LLL99V$l4 /#).:  $$&&.)<)<  227A 88:"99'LEK \\**..z2>BB*DF 9:27EE)+*:*:*>*>|*LMH%0%6%6EKK	"&.F#$W44[ ~~ 	.()F-L# 	"YFq6L	"s   )I J/	J8JJr,   NrD   r,   r(   r%   rF   rF   :   s    @5r(   rF   c                       \ rS rSrS rSrg)SLSView   c                 >  ^^ U R                  U5      n[        U R                  U5      nTR                  R                  n[        T5      mUU4S jnS nS n UR                  Xe(       + S9nUR                  5       n
U
(       aX  UR                  5       =(       d    Un[        R                  SSR                  U
5      < SU< 35        [        USS9nSUl        U$ U(       d  TR!                  T5      n[#        U5      $ ! [         a  n	[        U	5      n S n	A	NS n	A	ff = f)	Nc                  (   > T R                  T5        g r   )logout)account_adapterr    s   r%   force_logout&SLSView.dispatch.<locals>.force_logout   s    ""7+r(   )delete_session_cbkeep_local_sessionz$Error processing SAML SLS response: rL   rM   z
text/plain)content_typei  )r*   r   r    userra   get_account_adapterprocess_slor   r]   r^   r_   rY   rK   r`   r   status_codeget_logout_redirect_urlr   )r"   r    r#   rj   rm   should_logoutr}   redirect_torn   rp   ro   respr|   s    `          @r%   r2   SLSView.dispatch   s   $$%67$,,155-g6	, 	"**".CT + K
 "557G<LLL99V$l4  <HD"DK)AA'JK#K00 $ 	"q6L	"s   C= =
DDDr,   NrD   r,   r(   r%   rw   rw      s    1r(   rw   c                       \ rS rSrS rSrg)MetadataView   c                 .   U R                  U5      n[        U R                  UR                  R                  U5      n[        USS9nUR                  5       nUR                  U5      n[        U5      S:  a  [        SU05      nSUl
        U$ [        USS9$ )NT)rg   sp_validation_onlyr   ro   i  ztext/xml)contentr   )r*   r   r    r$   rg   r   get_sp_metadatavalidate_metadatalenr   r   r   )	r"   r    r#   rj   configsaml_settingsmetadataro   r   s	            r%   r2   MetadataView.dispatch   s    $$%67"LL(,,//1B
 0
 !00200:v;?6 23D"DKH:FFr(   r,   NrD   r,   r(   r%   r   r      s    Gr(   r   c                       \ rS rSrS rSrg)	LoginView   c                 t    U R                  U R                  S   5      nUR                  U R                  5      $ )Nr#   )r&   r9   r*   r    )r"   r$   s     r%   r*   LoginView.get_provider   s/    ll4;;':;<--r(   r,   N)r-   r.   r/   r0   r*   r1   r,   r(   r%   r   r      s    .r(   r   )8r[   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   r   #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-   rY   r   r5   as_viewacsrF   
finish_acsrw   slsr   r   r   rq   r,   r(   r%   <module>r      s     U U  4  4 7 6 F B ) R D 7 T T 
		8	$. . +J/$:6
mT 
 7 0
 oo $:6A5M4 A5 7A5H ""$
 +J/$:61mT 1 7 01B oo $:6G=$ G 7G( ! $:6.} . 7. 	r(   