
    k"g                     v    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
e      Zy)    N)import_module)settings)UpdateError)SessionInterrupted)patch_vary_headers)MiddlewareMixin)	http_datec                   *     e Zd Z fdZd Zd Z xZS )SessionMiddlewarec                 x    t         |   |       t        t        j                        }|j
                  | _        y N)super__init__r   r   SESSION_ENGINESessionStore)selfget_responseengine	__class__s      [/var/www/html/djangosite/lib/python3.12/site-packages/django/contrib/sessions/middleware.pyr   zSessionMiddleware.__init__   s.    &x667"//    c                     |j                   j                  t        j                        }| j	                  |      |_        y r   )COOKIESgetr   SESSION_COOKIE_NAMEr   session)r   requestsession_keys      r   process_requestz!SessionMiddleware.process_request   s.    oo))(*F*FG++K8r   c                 >   	 |j                   j                  }|j                   j                  }|j                   j                         }t
        j                  |j                  v r]|r[|j                  t
        j                  t
        j                  t
        j                  t
        j                         t        |d       |S |rt        |d       |st
        j                  r|s|j                   j                         rd}d}n<|j                   j                         }t!        j                          |z   }t#        |      }|j$                  dk  r	 |j                   j'                          |j-                  t
        j                  |j                   j.                  ||t
        j                  t
        j                  t
        j0                  xs dt
        j2                  xs dt
        j                  	       |S # t        $ r |cY S w xY w# t(        $ r t+        d      w xY w)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_times	            r   process_responsez"SessionMiddleware.process_response   s   	//H//HOO,,.E
 ''7??:u"",,1155!99	 #  x5D A "8[9H????>>@"G"G%oo<<>G#'99;#8L'5G ''#-,,. '' 4433 ' ''==%99'==E!)!A!A!IT!)!A!A ( 
 [  	O	8 ' 0H s   AG6 H 6HHH)__name__
__module____qualname__r   r   r=   __classcell__)r   s   @r   r   r      s    0
97r   r   )r4   	importlibr   django.confr   %django.contrib.sessions.backends.baser   "django.contrib.sessions.exceptionsr   django.utils.cacher   django.utils.deprecationr   django.utils.httpr	   r    r   r   <module>rJ      s+     #   = A 1 4 'A Ar   