o
    ˷eJ                     @   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	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 ddlmZ ddlmZmZ dd
lmZ ddlmZm Z  ddl!m"Z"m#Z# G dd deeeeZ$e$% Z&G dd deZ'e'% Z(G dd deZ)e)% Z*G dd deeZ+ee+% Z,dS )    )messages)login_required)get_current_site)HttpResponseRedirect)reversereverse_lazy)TemplateView)FormView   )app_settings)get_adapter)AjaxCapableProcessFormViewMixinCloseableSignupMixinRedirectAuthenticatedUserMixin)get_form_class   )r   helpers)DisconnectForm
SignupForm)SocialAccountSocialLoginc                       sb   e Zd ZeZdej Zdd Z fddZ	dd Z
 fdd	Zd
d Z fddZdd Z  ZS )
SignupViewzsocialaccount/signup.c                 C      t tjd| jS )Nsignupr   r   FORMS
form_classself r   R/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/views.pyr          zSignupView.get_form_classc                    sR   d | _ |jd}|rt|| _ | j sttdS tt| j	|g|R i |S )Nsocialaccount_socialloginaccount_login)
socialloginsessiongetr   deserializer   r   superr   dispatch)r   requestargskwargsdata	__class__r   r    r)   #   s   zSignupView.dispatchc                 C   s   t | j| j| jS N)r   r*   is_open_for_signupr$   r   r   r   r    is_open,   s   
zSignupView.is_openc                       t t|  }| j|d< |S )Nr$   )r(   r   get_form_kwargsr$   )r   retr.   r   r    r4   1      
zSignupView.get_form_kwargsc                 C   s,   | j jdd  || j  t| j | jS )Nr"   )r*   r%   popsaver   complete_social_signupr$   r   formr   r   r    
form_valid6   s   zSignupView.form_validc                    s6   t t| jdi |}|tt| j| jjd |S )N)siteaccountr   )	r(   r   get_context_dataupdatedictr   r*   r$   r>   )r   r,   r5   r.   r   r    r?   ;   s   zSignupView.get_context_datac                 C   s   t tS r0   )r   connectionsr   r   r   r    get_authenticated_redirect_urlE   s   z)SignupView.get_authenticated_redirect_url)__name__
__module____qualname__r   r   account_settingsTEMPLATE_EXTENSIONtemplate_namer   r)   r2   r4   r<   r?   rC   __classcell__r   r   r.   r    r      s    
	
r   c                   @      e Zd Zdej ZdS )LoginCancelledViewzsocialaccount/login_cancelled.NrD   rE   rF   rG   rH   rI   r   r   r   r    rL   L       rL   c                   @   rK   )LoginErrorViewz#socialaccount/authentication_error.NrM   r   r   r   r    rO   U   rN   rO   c                       sN   e Zd Zdej ZeZedZ	dd Z
 fddZ fddZd	d
 Z  ZS )ConnectionsViewzsocialaccount/connections.socialaccount_connectionsc                 C   r   )N
disconnectr   r   r   r   r    r   c   r!   zConnectionsView.get_form_classc                    r3   )Nr*   )r(   rP   r4   r*   )r   r,   r.   r   r    r4   f   r6   zConnectionsView.get_form_kwargsc                    s,   t  | jtjd |  tt| |S )Nz/socialaccount/messages/account_disconnected.txt)	get_account_adapteradd_messager*   r   INFOr8   r(   rP   r<   r:   r.   r   r    r<   k   s   zConnectionsView.form_validc                 C   sF   g }t jj| jjdD ]}| }||j|j|	 d qd|iS )N)user)idprovidernamesocialaccounts)
r   objectsfilterr*   rV   get_provider_accountappendpkrX   to_str)r   account_datar>   provider_accountr   r   r    get_ajax_datat   s   zConnectionsView.get_ajax_data)rD   rE   rF   rG   rH   rI   r   r   r   success_urlr   r4   r<   rc   rJ   r   r   r.   r    rP   ^   s    
	rP   N)-django.contribr   django.contrib.auth.decoratorsr   django.contrib.sites.shortcutsr   django.httpr   django.urlsr   r   django.views.generic.baser   django.views.generic.editr	   r>   r   rG   account.adapterr   rS   account.viewsr   r   r   utilsr    r   adapterformsr   r   modelsr   r   r   as_viewr   rL   login_cancelledrO   login_errorrP   rB   r   r   r   r    <module>   s8    
2$