o
    uvXj¢  ã                   @   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)Úget_responser   r   ÚSESSION_ENGINEÚSessionStore)Úselfr   Úengine© r   ú_/var/www/html/myproject/venv/lib/python3.10/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   s  z|j j}|j j}|j  ¡ }W n
 ty   Y |S w tj|jv r/|r/|jtjtj	tj
d� |S |r6t|dƒ |s;tjrˆ|sˆ|j  ¡ rGd}d}n|j  ¡ }t ¡ | }t|ƒ}|jdkrˆz|j  ¡  W n tym   tdƒ‚w |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)ÚCookieNiô  z‚The 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ÚhttponlyÚsamesite)r   ÚaccessedÚmodifiedÚis_emptyÚAttributeErrorr   r   r   Údelete_cookieÚSESSION_COOKIE_PATHÚSESSION_COOKIE_DOMAINr   Ú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ÚSESSION_COOKIE_SAMESITE)	r   r   Úresponser"   r#   Úemptyr   r   Úexpires_timer   r   r   Úprocess_response   sT   )Öý$â



ÿÿù	z"SessionMiddleware.process_responser
   )Ú__name__Ú
__module__Ú__qualname__r   r   r6   r   r   r   r   r	      s    
r	   )r,   Ú	importlibr   Údjango.confr   Ú%django.contrib.sessions.backends.baser   Údjango.core.exceptionsr   Údjango.utils.cacher   Údjango.utils.deprecationr   Údjango.utils.httpr   r	   r   r   r   r   Ú<module>   s    