o
    Mf                     @   sp   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ G d	d
 d
eZdS )    N)import_module)settings)UpdateError)SessionInterrupted)patch_vary_headers)MiddlewareMixin)	http_datec                       s.   e Zd Zd fdd	Zdd Zdd Z  ZS )	SessionMiddlewareNc                    s"   t  | ttj}|j| _d S N)super__init__r   r   SESSION_ENGINESessionStore)selfget_responseengine	__class__ d/var/www/html/analyze/labelStudio/lib/python3.10/site-packages/django/contrib/sessions/middleware.pyr      s   
zSessionMiddleware.__init__c                 C   s   |j tj}| ||_d S r
   )COOKIESgetr   SESSION_COOKIE_NAMEr   session)r   requestsession_keyr   r   r   process_request   s   z!SessionMiddleware.process_requestc           	      C   s$  z|j j}|j j}|j  }W n ty   | Y S w tj|jv r7|r7|jtjtj	tj
tjd t|d |S |r>t|d |sCtjr|s|j  rOd}d}n|j  }t | }t|}|jdkrz|j   W n tyu   tdw |jtj|j j||tj
tj	tjpdtjpdtjd	 |S )z
        If request.session was modified, or if the configuration is to save the
        session every time, save the changes and set a session cookie or delete
        the session cookie if the session has been emptied.
        )pathdomainsamesite)CookieNi  zThe request's session was deleted before the request completed. The user may have logged out in a concurrent request, for example.)max_ageexpiresr   r   securehttponlyr   )r   accessedmodifiedis_emptyAttributeErrorr   r   r   delete_cookieSESSION_COOKIE_PATHSESSION_COOKIE_DOMAINSESSION_COOKIE_SAMESITEr   SESSION_SAVE_EVERY_REQUESTget_expire_at_browser_closeget_expiry_agetimer   status_codesaver   r   
set_cookier   SESSION_COOKIE_SECURESESSION_COOKIE_HTTPONLY)	r   r   responser%   r&   emptyr!   r"   expires_timer   r   r   process_response   sV   
 



	z"SessionMiddleware.process_responser
   )__name__
__module____qualname__r   r   r9   __classcell__r   r   r   r   r	      s    r	   )r0   	importlibr   django.confr   %django.contrib.sessions.backends.baser   "django.contrib.sessions.exceptionsr   django.utils.cacher   django.utils.deprecationr   django.utils.httpr   r	   r   r   r   r   <module>   s    