o
     >âhp  ã                   @   s`   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ eƒ Ze  	¡ Z
dd„ ZG dd	„ d	ƒZdS )
é    N)ÚAnonymousUser)ÚSimpleLazyObject)Úget_user_model)Úlazyc                  C   s&   t tdd ƒ} t| tƒs| d u rd S | S )NÚvalue)ÚgetattrÚ_userÚ
isinstancer   )Úuser© r   úN/var/www/html/myvaluetrips/my_value_trip_new/my_value_trip/users/middleware.pyÚget_current_user   s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚCurrentUserMiddlewarec                 C   s
   || _ d S ©N)Úget_response)Úselfr   r   r   r   Ú__init__   s   
zCurrentUserMiddleware.__init__c                 C   sb   |j }z
t|tƒr|j}W n ty   d }Y nw t|ttfƒr$|t_nd t_|  	|¡}d t_|S r   )
r
   r	   r   Ú_wrappedÚ	ExceptionÚUserr   r   r   r   )r   Úrequestr
   Úresponser   r   r   Ú__call__   s   
€ÿ
zCurrentUserMiddleware.__call__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r      s    r   )Ú	threadingÚdjango.contrib.auth.modelsr   Údjango.utils.functionalr   Údjango.contrib.authr   r   r   Úlocalr   r   r   r   r   r   r   Ú<module>   s   