
    qhb                     F    S r SSKJrJr  SSKJr  SSKJr   " S S\5      rg)	z
Mozilla Persona authentication backend, docs at:
    https://python-social-auth.readthedocs.io/en/latest/backends/persona.html
   )
AuthFailedAuthMissingParameter)handle_http_errors   )BaseAuthc                   B    \ rS rSrSrSrS rS rS
S jr\	S 5       r
S	rg)PersonaAuth   z BrowserID authentication backendpersonac                     US   $ )zUse BrowserID email as IDemail )selfdetailsresponses      N/var/www/html/env/lib/python3.13/site-packages/social_core/backends/persona.pyget_user_idPersonaAuth.get_user_id   s    w    c                 B    US   nUR                  SS5      S   USSSS.$ )z3Return user details, BrowserID only provides Email.r   @r        )usernamer   fullname
first_name	last_name)split)r   r   r   s      r   get_user_detailsPersonaAuth.get_user_details   s7     !C+A.
 	
r   Nc                     US   US   S.$ )zReturn users extra dataaudienceissuer)r"   r#   r   )r   useruidr   r   argskwargss          r   
extra_dataPersonaAuth.extra_data$   s    $Z0HX<NOOr   c                 J   SU R                   ;  a  [        U S5      eU R                  SU R                   S   U R                  R	                  5       S.SS9nUR                  S5      S:X  a  [        U 5      eUR                  X0S.5        U R                  R                  " U0 UD6$ )	z2Completes login process, must return user instance	assertionzhttps://browserid.org/verify)r+   r"   POST)datamethodstatusfailure)r   backend)	r-   r   get_jsonstrategyrequest_hostgetr   updateauthenticate)r   r&   r'   r   s       r   auth_completePersonaAuth.auth_complete(   s     dii'&t[99==*!YY{3 MM668  ! 
 <<!Y.T""8=>}}))4:6::r   r   )N)__name__
__module____qualname____firstlineno____doc__namer   r   r(   r   r8   __static_attributes__r   r   r   r	   r	      s.    *D 
 P ; ;r   r	   N)	r>   
exceptionsr   r   utilsr   baser   r	   r   r   r   <module>rD      s!   
 : & .;( .;r   