
    R1i>	                     &    d dl mZ  G d de      Zy)    )OpenApiAuthenticationExtensionc                        e Zd ZdZdZd Zd Zy)DjangoOAuthToolkitSchemez;oauth2_provider.contrib.rest_framework.OAuth2Authenticationoauth2c                    ddl m}m}m} |j                  }|j
                  }|j                  j                         D ]  }t        ||      rL|j                  ||      }|j                  |j                  g       }|D 	cg c]  }	| j                  |	i c}	c S t        ||      r%| j                   |       j                  ||      ic S t        ||      s| j                  |j                  ||      ic S  y c c}	w )Nr   )IsAuthenticatedOrTokenHasScopeTokenHasScopeTokenMatchesOASRequirements)&oauth2_provider.contrib.rest_frameworkr   r	   r
   viewrequestget_permissions
isinstanceget_required_alternate_scopesgetmethodname
get_scopes)
selfauto_schemar   r	   r
   r   r   
permission
alt_scopesgroups
             p/home/cursorai/projects/iching/venv/lib/python3.12/site-packages/drf_spectacular/contrib/django_oauth_toolkit.pyget_security_requirementz1DjangoOAuthToolkitScheme.get_security_requirement   s    	
 	
 ,,%**::<J*&AB'EEgtT
'^^K,>,>C
8BC
uE*
CC*&DE		=?#=#=gt#LMM*m4		:#8#8$#GHH = Ds   >C8c                 `   ddl m} ddlm} i }|j                  D ]  }i ||<   |dv r|j
                  ||   d<   |dv r|j                  ||   d<   |j                  r|j                  ||   d<   |j                  r|j                  ||   d	<   q |       }|j                         ||   d	<    d
|dS )Nr   )get_scopes_backend)spectacular_settings)implicitauthorizationCodeauthorizationUrl)passwordclientCredentialsr    tokenUrl
refreshUrlscopesr   )typeflows)
oauth2_provider.scopesr   drf_spectacular.settingsr   OAUTH2_FLOWSOAUTH2_AUTHORIZATION_URLOAUTH2_TOKEN_URLOAUTH2_REFRESH_URLOAUTH2_SCOPESget_all_scopes)r   r   r   r   r(   	flow_typescope_backends          r   get_security_definitionz0DjangoOAuthToolkitScheme.get_security_definition   s    =A-::I!E)==7K7d7di !34RR/C/T/Ti ,#661E1X1Xi .#11-A-O-Oi * 2 4-:-I-I-Ki * ; 
 	
    N)__name__
__module____qualname__target_classr   r   r3    r4   r   r   r      s    PLDI$
r4   r   N)drf_spectacular.extensionsr   r   r9   r4   r   <module>r;      s    E-
= -
r4   