Ë
    lQêjY  ã                   ó|   — d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZ  G d„ de	«      Z G d„ d	e
«      Zy
)é    )ÚDict)ÚHTTPException)Úoverride)ÚAuthzActionÚAuthzResourceÚServerAuthenticationProviderÚServerAuthorizationProviderÚUserIdentity)ÚSystemc                   ó4   — e Zd ZdZedeeef   defd„«       Zy)ÚExampleAuthenticationProviderzšIn practice the tenant would likely be resolved from some other opaque value (e.g. key/token). Here, it's just passed directly as a header for simplicity.ÚheadersÚreturnc                 ó<   — t        d|j                  dd «      ¬«      S )NÚtestzx-tenant)Úuser_idÚtenant)r
   Úget)Úselfr   s     ús/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/chromadb/test/client/test_database_tenant_auth.pyÚauthenticate_or_raisez3ExampleAuthenticationProvider.authenticate_or_raise   s    € äØØ—;‘;˜z¨4Ó0ô
ð 	
ó    N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ústrr
   r   © r   r   r   r      s0   „ ñ eàð
¨T°#°s°(©^ð 
Àò 
ó ñ
r   r   c            	       óN   ‡ — e Zd ZdZdeddfˆ fd„Zededede	ddfd	„«       Z
ˆ xZS )
ÚExampleAuthorizationProviderzUA simple authz provider that asserts the user's tenant matches the resource's tenant.Úsystemr   Nc                 óF   •— t         ‰| �  |«       |j                  | _        y )N)ÚsuperÚ__init__ÚsettingsÚ	_settings)r   r!   Ú	__class__s     €r   r$   z%ExampleAuthorizationProvider.__init__   s   ø€ Ü‰Ñ˜Ô ØŸ™ˆ�r   ÚuserÚactionÚresourcec                 ó’   — |j                   €y |t        j                  k(  ry |j                   |j                   k7  rt        dd¬«      ‚y )Ni“  ÚUnauthorized)Ústatus_codeÚdetail)r   r   ÚRESETr   )r   r(   r)   r*   s       r   Úauthorize_or_raisez/ExampleAuthorizationProvider.authorize_or_raise    sD   € ð �;‰;ÐØà”[×&Ñ&Ò&Øà�;‰;˜(Ÿ/™/Ò)Ü¨C¸ÔGÐGð *r   )r   r   r   r   r   r$   r   r
   r   r   r0   Ú__classcell__)r'   s   @r   r    r       sS   ø„ Ù_ð)˜vð )¨$õ )ð ð
HØ ð
HØ*5ð
HØANð
Hà	ò
Hó ô
Hr   r    N)Útypingr   Úfastapir   Ú	overridesr   Úchromadb.authr   r   r   r	   r
   Úchromadb.configr   r   r    r   r   r   ú<module>r7      s9   ðÝ Ý !Ý ÷õ õ #ô
Ð$@ô 
ôHÐ#>õ Hr   