U
    >i
                     @   s   d dl 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 G d	d
 d
eZG dd deZegZdS )    N)HttpResponseRedirect)reverse)	urlencode)EmailAddress)get_adapter)ProviderProviderAccount)AuthenticateFormc                   @   s   e Zd ZdS )DummyAccountN)__name__
__module____qualname__ r   r   R/tmp/pip-unpacked-wheel-upujnpc2/allauth/socialaccount/providers/dummy/provider.pyr
      s   r
   c                   @   sV   e Zd ZdZdZeZdZdZdZ	dd Z
dd Zd	d
 ZdddZdd Zdd ZdS )DummyProviderdummyZDummyFTc                 K   s    t d}|r|d t| }|S )NZdummy_login?)r   r   )selfrequestkwargsurlr   r   r   get_login_url   s    zDummyProvider.get_login_urlc                 C   s   t |d S )Nid)str)r   datar   r   r   extract_uid   s    zDummyProvider.extract_uidc                 C   sv   i }| d }r||d< | d }r0||d< | d }rF||d< | d }r\||d< | d }rr||d< |S )N
first_name	last_nameusernamephonephone_verified)get)r   r   retr   r   r   r   r    r   r   r   extract_common_fields"   s    z#DummyProvider.extract_common_fieldsNc                 K   s6   | j ||f||d|}ttdd td|i S )N)next_urlr   Zdummy_authenticater   state)Zstash_redirect_stater   r   r   )r   r   processr$   r   r   Zstate_idr   r   r   redirect0   s    zDummyProvider.redirectc                 C   s4   g }| d}|r0| d}|t||dd |S )Nemailemail_verifiedT)r(   ZverifiedZprimary)r!   appendr   )r   r   	addressesr(   r)   r   r   r   extract_email_addresses<   s    

z%DummyProvider.extract_email_addressesc                 C   sd   | d}|rTzt|}W n tjk
r2   Y n"X t|d}| rT| ||jS t 	dd S )Nid_token)r   Zinvalid_token)
r!   jsonloadsJSONDecodeErrorr	   Zis_validZsociallogin_from_responseZcleaned_datar   Zvalidation_error)r   r   tokenr-   r   formr   r   r   verify_tokenJ   s    

zDummyProvider.verify_token)NN)r   r   r   r   namer
   Zaccount_classZ	uses_appsZsupports_redirectZsupports_token_authenticationr   r   r#   r'   r,   r3   r   r   r   r   r      s   
r   )r.   Zdjango.httpr   Zdjango.urlsr   Zdjango.utils.httpr   Zallauth.account.modelsr   Zallauth.socialaccount.adapterr   Z$allauth.socialaccount.providers.baser   r   Z+allauth.socialaccount.providers.dummy.formsr	   r
   r   Zprovider_classesr   r   r   r   <module>   s   I