î

_ÝVb
  ã               @   sf   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z d  d l m Z Gd d „  d e	 ƒ Z
 d S)é    N)Úimport_module)Úsettings)Úpatch_vary_headers)Úcookie_datec               @   s4   e  Z d  Z d d „  Z d d „  Z d d „  Z d S)ÚSessionMiddlewarec             C   s   t  t j ƒ } | j |  _ d  S)N)r   r   ZSESSION_ENGINEÚSessionStore)ÚselfZengine© r	   úD/tmp/pip-build-ghmbqnp_/Django/django/contrib/sessions/middleware.pyÚ__init__
   s    zSessionMiddleware.__init__c             C   s+   | j  j t j ƒ } |  j | ƒ | _ d  S)N)ÚCOOKIESÚgetr   ÚSESSION_COOKIE_NAMEr   Úsession)r   ÚrequestÚsession_keyr	   r	   r
   Úprocess_request   s    z!SessionMiddleware.process_requestc       	      C   sd  y+ | j  j } | j  j } | j  j ƒ  } Wn t k
 r? Yn!Xt j | j k rt | rt | j t j d t j	 ƒnì | rŠ t
 | d
 ƒ n  | s™ t j r`| r`| j  j ƒ  r¾ d } d } n+ | j  j ƒ  } t j ƒ  | } t | ƒ } | j d k r`| j  j ƒ  | j t j | j  j d | d | d t j	 d t j d t j pGd d	 t j pVd ƒq`n  | 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.
        ÚdomainÚCookieNiô  Úmax_ageÚexpiresÚpathÚsecureÚhttponly)zCookie)r   ÚaccessedÚmodifiedZis_emptyÚAttributeErrorr   r   r   Zdelete_cookieZSESSION_COOKIE_DOMAINr   ZSESSION_SAVE_EVERY_REQUESTZget_expire_at_browser_closeZget_expiry_ageÚtimer   Ústatus_codeÚsaveÚ
set_cookier   ZSESSION_COOKIE_PATHZSESSION_COOKIE_SECUREZSESSION_COOKIE_HTTPONLY)	r   r   Úresponser   r   Úemptyr   r   Zexpires_timer	   r	   r
   Úprocess_response   s6    		z"SessionMiddleware.process_responseN)Ú__name__Ú
__module__Ú__qualname__r   r   r#   r	   r	   r	   r
   r   	   s   r   )r   Ú	importlibr   Zdjango.confr   Zdjango.utils.cacher   Zdjango.utils.httpr   Úobjectr   r	   r	   r	   r
   Ú<module>   s
   