o
    &zh
                     @   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   i/var/www/html/kangema/venv/lib/python3.10/site-packages/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dummyDummyFTc                 K   s    t d}|r|d t| }|S )N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 }r||d< | d }r#||d< | d }r.||d< | d }r9||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   dummy_authenticater   state)stash_redirect_stater   r   r   )r   r   processr&   r   r   state_idr   r   r   redirect0   s   zDummyProvider.redirectc                 C   s4   g }| d}|r| d}|t||dd |S )Nemailemail_verifiedT)r-   verifiedprimary)r#   appendr   )r   r   	addressesr-   r.   r   r   r   extract_email_addresses<   s   

z%DummyProvider.extract_email_addressesc                 C   s^   | d}|r)zt|}W n
 tjy   Y nw t|d}| r)| ||jS t 	d)Nid_token)r   invalid_token)
r#   jsonloadsJSONDecodeErrorr	   is_validsociallogin_from_responsecleaned_datar   validation_error)r   r   tokenr4   r   formr   r   r   verify_tokenJ   s   

zDummyProvider.verify_token)NN)r   r   r   r   namer
   account_class	uses_appssupports_redirectsupports_token_authenticationr   r   r%   r,   r3   r?   r   r   r   r   r      s    
r   )r6   django.httpr   django.urlsr   django.utils.httpr   allauth.account.modelsr   allauth.socialaccount.adapterr   $allauth.socialaccount.providers.baser   r   +allauth.socialaccount.providers.dummy.formsr	   r
   r   provider_classesr   r   r   r   <module>   s    
I