a
    xd>                     @   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)SuspiciousOperation)patch_vary_headers)MiddlewareMixin)	http_datec                   @   s&   e Zd ZdddZdd Zdd ZdS )	SessionMiddlewareNc                 C   s.   |  | || _|   ttj}|j| _d S N)Z_get_response_none_deprecationget_responseZ_async_checkr   r   ZSESSION_ENGINESessionStore)selfr   Zengine r   Z/var/www/html/Ranjet/env/lib/python3.9/site-packages/django/contrib/sessions/middleware.py__init__   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   s0  z|j j}|j j}|j  }W n ty4   | Y S 0 tj|jv rl|rl|jtjtj	tj
tjd t|d n|rzt|d |stjr,|s,|j  rd}d}n|j  }t | }t|}|jdkr,z|j   W n ty   tdY n0 |jtj|j j||tj
tj	tjpdtjp"d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modifiedZis_emptyAttributeErrorr   r   r   Zdelete_cookieZSESSION_COOKIE_PATHZSESSION_COOKIE_DOMAINZSESSION_COOKIE_SAMESITEr   ZSESSION_SAVE_EVERY_REQUESTZget_expire_at_browser_closeZget_expiry_agetimer   status_codesaver   r   
set_cookier   ZSESSION_COOKIE_SECUREZSESSION_COOKIE_HTTPONLY)	r   r   responser    r!   emptyr   r   Zexpires_timer   r   r   process_response   sP    






	z"SessionMiddleware.process_response)N)__name__
__module____qualname__r   r   r)   r   r   r   r   r	      s   
r	   )r#   	importlibr   Zdjango.confr   Z%django.contrib.sessions.backends.baser   Zdjango.core.exceptionsr   Zdjango.utils.cacher   Zdjango.utils.deprecationr   Zdjango.utils.httpr   r	   r   r   r   r   <module>   s   