o
    gf	                     @   sH   d Z ddlmZmZ dZdZG dd deZG dd deZd	eiZd
S )a  
Behance OAuth2 support.

This contribution adds support for the Behance OAuth service. The settings
BEHANCE_CLIENT_ID and BEHANCE_CLIENT_SECRET must be defined with the values
given by Behance application registration process.

Extended permissions are supported by defining BEHANCE_EXTENDED_PERMISSIONS
setting, it must be a list of values to request.

By default username and access_token are stored in extra_data field.
    )
BaseOAuth2OAuthBackendz-https://www.behance.net/v2/oauth/authenticatez&https://www.behance.net/v2/oauth/tokenc                       s:   e Zd ZdZdZdgZdd Zdd Z fdd	Z  Z	S )
BehanceBackendz$Behance OAuth authentication backendbehance)usernamer   c                 C   s   |d d S )Nuserid )selfdetailsresponser	   r	   e/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/contrib/behance.pyget_user_id   s   zBehanceBackend.get_user_idc                 C   s(   |d }|d |d |d |d ddS )z(Return user details from Behance accountr   r   	last_name
first_namedisplay_name )r   r   r   fullnameemailr	   )r
   r   r   r	   r	   r   get_user_details    s   zBehanceBackend.get_user_detailsc                    s:   t dd | D }||d  tt| ||||S )Nc                 s   s    | ]	\}}||fV  qd S )Nr	   ).0namevaluer	   r	   r   	<genexpr>/   s    z,BehanceBackend.extra_data.<locals>.<genexpr>r   )dict	iteritemsupdatesuperr   
extra_data)r
   r   uidr   r   all_data	__class__r	   r   r   +   s
   zBehanceBackend.extra_data)
__name__
__module____qualname____doc__r   
EXTRA_DATAr   r   r   __classcell__r	   r	   r!   r   r      s    r   c                   @   s,   e Zd ZdZeZeZeZ	dZ
dZdZdZdS )BehanceAuthzBehance OAuth2 mechanismBEHANCE_CLIENT_IDBEHANCE_CLIENT_SECRET|BEHANCE_EXTENDED_PERMISSIONSN)r#   r$   r%   r&   BEHANCE_AUTHORIZATION_URLAUTHORIZATION_URLBEHANCE_ACCESS_TOKEN_URLACCESS_TOKEN_URLr   AUTH_BACKENDSETTINGS_KEY_NAMESETTINGS_SECRET_NAMESCOPE_SEPARATORSCOPE_VAR_NAMEr	   r	   r	   r   r)   5   s    r)   r   N)	r&   social_auth.backendsr   r   r.   r0   r   r)   BACKENDSr	   r	   r	   r   <module>   s     