
    f                     v    d dl mZ d dlmZmZ d dlmZ d dlmZ d Z	d Z
 G d de      Z G d	 d
e      ZegZy)    )app_settings)ProviderAccountProviderException)LinkedInOAuth2Adapter)OAuth2Providerc                 P   d}| j                  |i       }|rt        |t              r|}|S |j                  di       }|j                  dddd      }dj                  |d   |d	   g      }||v r|j                  |      }|S |r"t	        t        |j                                     }|S )
N 	localizedpreferredLocaleUSen)countrylanguage_r   r   )get
isinstancestrjoinnextitervalues)data
field_nameretvr
   preferred_locale
locale_keys          s/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/linkedin_oauth2/provider.py_extract_name_fieldr      s    
CR AaC J k2.I uu!t#F  !*-/?	/JKJ Y&mmJ/ J 4	 0 0 234J    c                     d}| j                  dg       }t        |      dkD  r%|d   j                  di       j                  dd      }|S )z
    {'elements': [{'handle': 'urn:li:emailAddress:319371470',
               'handle~': {'emailAddress': 'raymond.penners@intenct.nl'}}]}
    r	   elementsr   zhandle~emailAddress)r   len)r   r   r"   s      r   _extract_emailr%   "   sK    
 Cxx
B'H
8}qqkooi,00DJr    c                   (     e Zd Z fdZ fdZ xZS )LinkedInOAuth2Accountc                 r   t         t        |          }| j                  j                  j                  d      r| j                  j                  d   S t        | j                  j                  d      }t        | j                  j                  d      }|s|r!dj                  ||g      j                         }|S )Nr#   	firstNamelastName )	superr'   to_straccount
extra_datar   r   r   strip)selfr   
first_name	last_name	__class__s       r   r-   zLinkedInOAuth2Account.to_str/   s    )479<<""&&~6<<**>::()@)@+N
'(?(?L	((J	2399;C
r    c                    | j                   j                         j                         }|j                  dg       }d}||vrt        t
        |          S |j                  di       }|j                  dd      }|j                  dd      }| j                   j                  j                  di       j                  d	i       j                  d
g       }|D ]  }||d   k(  s|j                  di       j                  di       j                  di       }	|	sA|	d   |	d   }}
|
r|sP|
|d   k(  r||d   k(  sa|j                  di g      d   j                  d      }|s|c S  t        t
        |          S )z
        Attempts the load the avatar associated to the avatar.

        Requires the `profilePicture(displayImage~:playableStreams)`
        profile field configured in settings.py

        :return:
        PROFILE_FIELDSz-profilePicture(displayImage~:playableStreams)PROFILEPICTUREdisplay_size_w_h)      Y@r9   authorization_methodPUBLICprofilePicturezdisplayImage~r"   authorizationMethodr   z2com.linkedin.digitalmedia.mediaartifact.StillImagedisplaySizewidthheightr      identifiers
identifier)r.   get_providerget_settingsr   r,   r'   get_avatar_urlr/   )r1   provider_configurationconfigured_profile_fieldspicture_fieldprofile_picture_configreq_sizereq_auth_methodprofile_elementssingle_element
image_datar?   r@   	to_returnr4   s                r   rF   z$LinkedInOAuth2Account.get_avatar_url9   s    "&!:!:!<!I!I!K$:$>$>?OQS$T!G 99.DFF!7!;!;<Lb!Q)--.@.Q0445KXV LL##''(8"=S"%SR  	
 / 	!N"n5J&KK ""62.I2N]B' 
 &w/H1E6EHQK'v!/D&**  c,    5	!6 *D@BBr    )__name__
__module____qualname__r-   rF   __classcell__)r4   s   @r   r'   r'   .   s    4C 4Cr    r'   c                   4    e Zd ZdZdZeZeZd Z	d Z
d Zd Zy)LinkedInOAuth2Providerlinkedin_oauth2LinkedInc                 <    d|vrt        d      t        |d         S )NidzZLinkedIn encountered an internal error while logging in.                 Please try again.)r   r   r1   r   s     r   extract_uidz"LinkedInOAuth2Provider.extract_uidw   s,    t##  4:r    c                 N    g d}| j                         j                  d|      }|S )N)rZ   r)   r*   r6   )rE   r   )r1   default_fieldsfieldss      r   get_profile_fieldsz)LinkedInOAuth2Provider.get_profile_fields   s,    	
 ""$(()9>Jr    c                 N    dg}t         j                  r|j                  d       |S )Nr_liteprofiler_emailaddress)r   QUERY_EMAILappend)r1   scopes     r   get_default_scopez(LinkedInOAuth2Provider.get_default_scope   s%     !##LL)*r    c                 X    t        t        |d      t        |d      t        |            S )Nr)   r*   )r2   r3   email)dictr   r%   r[   s     r   extract_common_fieldsz,LinkedInOAuth2Provider.extract_common_fields   s+    *4=)$
; &
 	
r    N)rQ   rR   rS   rZ   namer'   account_classr   oauth2_adapter_classr\   r`   rg   rk    r    r   rV   rV   p   s+    	BD)M0
r    rV   N)allauth.socialaccountr   $allauth.socialaccount.providers.baser   r   5allauth.socialaccount.providers.linkedin_oauth2.viewsr   /allauth.socialaccount.providers.oauth2.providerr   r   r%   r'   rV   provider_classesro   r    r   <module>ru      sI    . K,	?CO ?CD(
^ (
V ++ r    