
    qhx                     &    S SK Jr   " S S\5      rg)   )
BaseOAuth2c                   H    \ rS rSrSrSrSrSrSrSr	Sr
S rS	 rS
 rS rSrg)CleverOAuth2   z^
Clever OAuth authentication backend.

Docs: https://dev.clever.com/docs/classroom-with-oauth
cleverz"https://clever.com/oauth/authorizezhttps://clever.com/oauth/tokensF c                 D    UR                  S0 5      R                  S5      $ )z)Return user unique id provided by servicedataid)get)selfdetailsresponses      M/var/www/html/env/lib/python3.13/site-packages/social_core/backends/clever.pyget_user_idCleverOAuth2.get_user_id   s    ||FB'++D11    c                     [        [        UR                  S0 5      R                  S0 5      R                  5       5      5      $ )Nr
   roles)nextiterr   keys)r   r
   s     r   get_user_typeCleverOAuth2.get_user_type   s3    D&"-11'2>CCEFGGr   c                 B   U R                  UR                  S0 5      R                  S0 5      R                  SS5      UR                  S0 5      R                  S0 5      R                  SS5      S9u  p#nUR                  S0 5      R                  S5      nUR                  S0 5      R                  S0 5      R                  U R                  U5      0 5      R                  S	0 5      R                  S
UR                  SS5      S   5      nUUUUUU R                  U5      S.$ )z*Return user details from Classlink accountr
   namefirstNlast)
first_name	last_nameemailr   credentialsdistrict_username@r       )usernamer!   fullnamer   r    	user_type)get_user_namesr   r   split)r   r   r'   r   r    r!   r&   s          r   get_user_detailsCleverOAuth2.get_user_details   s   *.*=*=||FB/33FB?CCGTRll62.2262>BB64P +> +
'i VR(,,W5LL$S"S##H-r2S#S$ekk#q&9!&<= 	 ! $"++H5
 	
r   c                     SnSnSSU 30n U R                  XFS9nUR                  S0 5      R                  S5      nSU 3nU R                  XVS9$ ! [         a     g	f = f)
zLoads user data from servicezhttps://api.clever.com/v3.0/mez!https://api.clever.com/v3.0/usersAuthorizationzBearer )headersr
   r   z"https://api.clever.com/v3.0/users/N)get_jsonr   
ValueError)	r   tokenargskwargsidentity_urluser_details_urlauth_headerr   user_ids	            r   	user_dataCleverOAuth2.user_data0   s    7>&'%(9:	}}\}GHll62.2248G!CG9M==!1=GG 		s   AA 
AA N)__name__
__module____qualname____firstlineno____doc__r   AUTHORIZATION_URLACCESS_TOKEN_URLREDIRECT_STATESTATE_PARAMETERSCOPE_SEPARATORr   r   r+   r9   __static_attributes__r;   r   r   r   r      s>     D<8NOO2H
.r   r   N)oauthr   r   r;   r   r   <module>rH      s    7: 7r   