
    f                     b   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 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#m$Z$m%Z%m&Z& d Z' G d de	      Z(e(jS                         Z* G d de	      Z+ ee+jS                               Z,y)    )REDIRECT_FIELD_NAME)HttpResponseRedirect)render)reverse)View)csrf_exempt)consumer)DiscoveryFailure)AttrInfoFetchRequest)SRegRequest)QUERY_EMAIL)complete_social_loginrender_authentication_error)SocialLogin   )	AuthError   )	LoginForm)OpenIDProvider)AXAttributesDBOpenIDStoreJSONSafeSession
SRegFieldsc                     |j                  |      }|j                  dd      }|rd n	t               }t        j                  t        | j                        |      }|S )N	statelessF)get_server_settingsgetr   r	   Consumerr   session)requestproviderendpointserver_settingsr   storeclients          g/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/openid/views.py_openid_consumerr(      sO    228<O##K7ID=?Ew?GFM    c                   T     e Zd ZdZeZeZ fdZd Z	d Z
d Zd Zd Zd Zd	 Z xZS )
OpenIDLoginViewzopenid/login.htmlc                 V    | j                  |      | _        t        |   |g|i |S N)provider_classr"   superdispatch)selfr!   argskwargs	__class__s       r'   r0   zOpenIDLoginView.dispatch'   s/    ++G4w9$9&99r)   c                     | j                         }|j                         st        || j                  d|i      S 	 | j	                  |      S # t
        t        f$ r"}t        || j                  |      cY d }~S d }~ww xY w)Nform)	exception)	get_formis_validr   template_nameperform_openid_authUnicodeDecodeErrorr
   r   r"   r1   r!   r6   es       r'   r   zOpenIDLoginView.get+   sr    }}}}'4#5#5~FF	T++D11"$45 	T.wQRSS	Ts   A A=A82A=8A=c                    | j                         }|j                         r	 | j                  |      S t        || j                  d|i      S # t        t        f$ r)}|j                  |g      |j                  d<   Y d }~Ld }~ww xY w)Nopenidr6   )	r8   r9   r;   r<   r
   error_class_errorsr   r:   r=   s       r'   postzOpenIDLoginView.post6   sz    }}==??//55 gt11FD>BB '(89 ?)-)9)91#)>X&?s   A BA??Bc           	         | j                   j                  dk(  rwd| j                   j                  vr_| j                  | j                   j                  j	                  t
              | j                   j                  j	                  d      d      S | j                  t        t        | j                   j                  j                               t        | j                   j                  j                               z               S )NGETr@   process)nextrF   )initial)
r!   methodrE   
form_classr   r   dictlistitemsPOSTr1   s    r'   r8   zOpenIDLoginView.get_form@   s    <<%'HDLL<L<L,L?? LL,,001DE#||//33I> #   dll&&,,./$t||7H7H7N7N7P2QQR
 	
r)   c                 0    t        | j                  ||      S r-   r(   r!   r1   r"   r#   s      r'   
get_clientzOpenIDLoginView.get_clientM       hAAr)   c                 t    |j                         j                  d| j                  j                  d            S )NREALM/)get_settingsr   r!   build_absolute_uri)r1   r"   s     r'   	get_realmzOpenIDLoginView.get_realmP   s2    $$&**T\\44S9
 	
r)   c                      t        t              S r-   )r   callbackrO   s    r'   get_callback_urlz OpenIDLoginView.get_callback_urlU   s    x  r)   c                    |j                         s|S | j                  }| j                  }|j                  d   }| j	                  ||      }| j                  |      }|j                  |      }t        rt               }t        D ]  }	|j                  |	d        |j                  |       t               }
t        D ]  }	|
j                  t        |	d               |j!                  |j"                  j%                  d            }|j%                  dg       }|D ]"  \  }}	}|
j                  t        |	|             $ |j                  |
       t'        j(                  |       d|j                  v r+|j                  d   r|j                  d   |j*                  d<   |j-                  ||j/                  | j1                                     }t3        |      S )Nr@   T)
field_namerequired)r`   extra_attributesrG   )r9   r!   r"   cleaned_datarS   rZ   beginr   r   r   requestFieldaddExtensionr   r   addr   r   rE   r   r   stash_statereturn_to_argsredirectURLrY   r]   r   )r1   r6   r!   r"   r#   r&   realmauth_requestsregnameaxr$   ra   _r`   redirect_urls                   r'   r;   z#OpenIDLoginView.perform_openid_authX   s   }}K,,==$$X.84x(||H-=D" B!!TD!AB%%d+B$ 6xt456&::7;;??8;TUO.223ErJ%5 :!4xx89:%%b)( T&&&4+<+<V+D262C2CF2KL''/#//7--d.C.C.EF
 $L11r)   )__name__
__module____qualname__r:   r   rJ   r   r.   r0   r   rC   r8   rS   rZ   r]   r;   __classcell__)r4   s   @r'   r+   r+   "   s=    'MJ#N:	TC
B

!!2r)   r+   c                   2    e Zd ZeZd ZeZd Zd Zd Z	d Z
y)OpenIDCallbackViewc                    | j                  |      x}| _        |j                  j                  dd      }| j	                  ||      }| j                  |      }|j                  t        j                  k(  r=|j                  ||      }t        j                  |      |_        | j                  |      S |j                  t        j                  k(  rt        j                   }nt        j"                  }| j%                  |      S )Nzopenid.op_endpoint )r.   r"   rE   r   rS   get_openid_responsestatusr	   SUCCESSsociallogin_from_responser   unstash_statestatecomplete_loginCANCELr   	CANCELLEDUNKNOWNrender_error)r1   r!   r"   r#   r&   responseloginerrors           r'   r   zOpenIDCallbackView.get   s    #'#6#6w#??4=;;??#7<84++F3??h...66wIE%33G<EK&&u--(//1!++!))$$U++r)   c                 .    t        | j                  |      S r-   )r   r!   )r1   r   s     r'   r   z!OpenIDCallbackView.complete_login   s    $T\\599r)   c                 F    t        | j                  | j                  |      S )N)r   )r   r!   r"   )r1   r   s     r'   r   zOpenIDCallbackView.render_error   s    *4<<eTTr)   c                 0    t        | j                  ||      S r-   rQ   rR   s      r'   rS   zOpenIDCallbackView.get_client   rT   r)   c           	      D   |j                  t        t        | j                  j                  j                               t        | j                  j                  j                               z         | j                  j                  | j                  j                              S r-   )	completerK   rL   r!   rE   rM   rN   rY   path)r1   r&   s     r'   ry   z&OpenIDCallbackView.get_openid_response   sl    dll&&,,./$t||7H7H7N7N7P2QQRLL++DLL,=,=>
 	
r)   N)rq   rr   rs   r   r.   r   rC   r   r   rS   ry    r)   r'   rv   rv      s)    #N," D:UB
r)   rv   N)-django.contrib.authr   django.httpr   django.shortcutsr   django.urlsr   django.viewsr   django.views.decorators.csrfr   openid.consumerr	   openid.consumer.discoverr
   openid.extensions.axr   r   openid.extensions.sregr   "allauth.socialaccount.app_settingsr   allauth.socialaccount.helpersr   r   allauth.socialaccount.modelsr   baser   formsr   r"   r   utilsr   r   r   r   r(   r+   as_viewr   rv   r\   r   r)   r'   <module>r      s    3 , #   4 $ 5 7 . : 5   $ K KW2d W2t 	!#
 #
L )1134r)   