o
    ÷Ç[hà  ã                   @   s4   d dl mZ d dlmZ e ¡ Zdd„ Zdd„ ZdS )é    )Údb)Úauthc                 C   sn   t  ¡  z-ztj |¡}W n tjy   Y W t  ¡  dS w |js(W t  ¡  dS | |¡W t  ¡  S t  ¡  w )z¯
    Authenticate against Django's auth database.

    mod_wsgi docs specify None, True, False as return value depending
    on whether the user exists and authenticates.
    N)	r   Úreset_queriesÚ	UserModelÚ_default_managerÚget_by_natural_keyÚDoesNotExistÚclose_old_connectionsÚ	is_activeÚcheck_password)ÚenvironÚusernameÚpasswordÚuser© r   ú‹/home/ubuntu/experiments/live_experiments/Pythonexperiments/Otree/venv/lib/python3.10/site-packages/django/contrib/auth/handlers/modwsgi.pyr      s   	ú
þr   c                 C   sz   t  ¡  z3ztj |¡}W n tjy   g  Y W t  ¡  S w |js)g W t  ¡  S dd„ |j 	¡ D ƒW t  ¡  S t  ¡  w )z*
    Authorize a user based on groups
    c                 S   s   g | ]}|j  ¡ ‘qS r   )ÚnameÚencode)Ú.0Úgroupr   r   r   Ú
<listcomp>)   s    z#groups_for_user.<locals>.<listcomp>)
r   r   r   r   r   r   r	   r
   ÚgroupsÚall)r   r   r   r   r   r   Úgroups_for_user   s   
ú
þr   N)Údjangor   Zdjango.contribr   Zget_user_modelr   r   r   r   r   r   r   Ú<module>   s
    