U
    F'dH                     @   s  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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mZmZ dd Zdd Z ej!ddfddZ"dd Z#dd Z$dd Z%dd Z&dd Z'dd  Z(d!d" Z)dS )#    )messages)ValidationError)HttpResponseRedirect)render)reverse)app_settings)get_adapter)complete_signupperform_loginuser_displayuser_username)ImmediateHttpResponse   )r   signals)SocialLogin)	AuthErrorAuthProcessc                 C   s   t | | |}|s4| | jd< td}t|}ntjrxt|j	}zt
| | W n  tk
rv   t|j	d Y nX t | | |st| dtj S t | j| |d d t| |}|S )NZsocialaccount_socialloginZsocialaccount_signup zaccount/signup_closed.)Zform)r   Zis_auto_signup_allowed	serializeZsessionr   r   account_settingsZUSER_MODEL_USERNAME_FIELDr   userget_account_adapterZclean_usernamer   Zis_open_for_signupr   TEMPLATE_EXTENSIONZ	save_usercomplete_social_signup)requestsocialloginZauto_signupurlretusername r   a/var/www/html/crackeverytest/cet_env/lib/python3.8/site-packages/allauth/socialaccount/helpers.py_process_signup   s&    


r!   c                 C   s    t | |jtj|| d|idS )Nr   )Zemail_verificationZredirect_urlsignal_kwargs)r
   r   r   EMAIL_VERIFICATIONget_redirect_urlr   r   r   r   r    _login_social_account4   s    r&   Nc              
   C   s   z(|d kri }t | j| ||||d W n, tk
rT } z|j W Y S d }~X Y nX |tjkrlttdS d|||di}|| t	| dt
j |S )N)error	exceptionextra_contextZsocialaccount_login_cancelledZ
auth_error)Zprovidercoder(   z#socialaccount/authentication_error.)r   Zauthentication_errorr   responser   Z	CANCELLEDr   r   updater   r   r   )r   Zprovider_idr'   r(   r)   econtextr   r   r    render_authentication_error>   s4    


r/   c                 C   s   | j jr"t| | |j}t|S tj}d}d }|jrj|j | j krNtj	}d}qd}d}t
jjt| |d n$d}|| | j  t
jjt| |d | j jstt| | |j}|| p|}t| j| ||||dd t|S )	Nz,socialaccount/messages/account_connected.txtz2socialaccount/messages/account_connected_other.txtupdatedz4socialaccount/messages/account_connected_updated.txtZsenderr   r   Zadded)r   action)Zmessage_context)r   Zis_anonymousr   Zget_connect_redirect_urlZaccountr   r   INFOis_existingERRORr   social_account_updatedsendr   connectZsocial_account_addedis_authenticatedAssertionErrorr$   r   Zadd_message)r   r   Zconnect_redirect_urllevelmessager2   Zdefault_nextnext_urlr   r   r    _add_social_accountb   sP          r>   c              
   C   s   |j r
t|  zjt| | | tjjt| |d |j	d}|t
jkrXt| |W S |t
jkrnt| |W S t| |W S W n, tk
r } z|j W Y S d }~X Y nX d S )Nr1   process)r4   r:   lookupr   Zpre_social_loginr   r7   r   stategetr   ZREDIRECT_social_login_redirectZCONNECTr>   _complete_social_loginr   r+   )r   r   r?   r-   r   r   r    complete_social_login   s"    
  

rE   c                 C   s   | | pd}t|S )N/)r$   r   )r   r   r=   r   r   r    rC      s    rC   c                 C   sH   | j jrt| |  |jr:t| |}tjjt	| |d n
t
| |}|S )Nr1   )r   r9   r   Zlogoutr4   r&   r   r6   r7   r   r!   )r   r   r   r   r   r    rD      s    
  
rD   c                 C   s    t | |jtj|| d|idS )Nr   )r"   )r	   r   r   r#   r$   r%   r   r   r    r      s    r   c                 C   s(   |  d\}}}t||gd}t||S )N.)fromlist)
rpartition
__import__getattr)pathmodname_attrmr   r   r    import_path   s    rQ   c                 C   s   t j}|st| jS || S )N)r   ZSOCIALACCOUNT_STRr   r   )Zsocialaccountfuncr   r   r    socialaccount_user_display   s    
rS   )*Zdjango.contribr   Zdjango.formsr   Zdjango.httpr   Zdjango.shortcutsr   Zdjango.urlsr   Zallauth.accountr   r   Zallauth.account.adapterr   r   Zallauth.account.utilsr	   r
   r   r   Zallauth.exceptionsr   r   r   ZadapterZmodelsr   Zproviders.baser   r   r!   r&   UNKNOWNr/   r>   rE   rC   rD   r   rQ   rS   r   r   r   r    <module>   s2   
$0