
    j                     v    S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  S SKJr  S SKJr   " S	 S
\5      rg)    N)import_module)settings)UpdateError)SessionInterrupted)patch_vary_headers)MiddlewareMixin)	http_datec                   4   ^  \ rS rSrU 4S jrS rS rSrU =r$ )SessionMiddleware   c                 x   > [         TU ]  U5        [        [        R                  5      nUR
                  U l        g N)super__init__r   r   SESSION_ENGINESessionStore)selfget_responseengine	__class__s      Z/var/www/html/KUNJ/venv/lib/python3.13/site-packages/django/contrib/sessions/middleware.pyr   SessionMiddleware.__init__   s.    &x667"//    c                     UR                   R                  [        R                  5      nU R	                  U5      Ul        g r   )COOKIESgetr   SESSION_COOKIE_NAMEr   session)r   requestsession_keys      r   process_request!SessionMiddleware.process_request   s.    oo))(*F*FG++K8r   c                     UR                   R                  nUR                   R                  nUR                   R                  5       n[
        R                  UR                  ;   aU  U(       aN  UR                  [
        R                  [
        R                  [
        R                  [
        R                  S9  SnGOFUnU(       d  [
        R                  (       Ga'  U(       Gd  UR                   R                  5       (       a  SnSnO=UR                   R                  5       n[        R                  " 5       U-   n	[!        U	5      nUR"                  S:  a   UR                   R%                  5         UR+                  [
        R                  UR                   R,                  UU[
        R                  [
        R                  [
        R.                  =(       d    S[
        R0                  =(       d    S[
        R                  S9	  SnU(       a  [3        US5        U$ ! [         a    Us $ f = f! [&         a    [)        S5      ef = f)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samesiteTNi  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&   )Cookie)r   accessedmodifiedis_emptyAttributeErrorr   r   r   delete_cookieSESSION_COOKIE_PATHSESSION_COOKIE_DOMAINSESSION_COOKIE_SAMESITESESSION_SAVE_EVERY_REQUESTget_expire_at_browser_closeget_expiry_agetimer	   status_codesaver   r   
set_cookier    SESSION_COOKIE_SECURESESSION_COOKIE_HTTPONLYr   )
r   r   responser,   r-   emptyneed_vary_cookier'   r(   expires_times
             r   process_response"SessionMiddleware.process_response   s   	//H//HOO,,.E
 ''7??:u"",,1155!99	 #   $  (H?????>>@@"G"G%oo<<>G#'99;#8L'5G ''#-,,. '' 4433 ' ''==%99'==E!)!A!A!IT!)!A!A ( 
 (,$x5e  	O	: ' 0H s   AH H( H%$H%(H>)r   )	__name__
__module____qualname____firstlineno__r   r!   rA   __static_attributes____classcell__)r   s   @r   r   r      s    0
9< <r   r   )r7   	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>rQ      s+     #   = A 1 4 'F Fr   