
 X                 @   s   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 Gd	 d
   d
 e  Z d S)    N)import_module)settings)UpdateError)redirect)patch_vary_headers)MiddlewareMixin)cookie_datec               @   s7   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   ZSESSION_ENGINESessionStore)selfr
   Zengine r   P/home/ubuntu/projects/ifolica/build/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   s  y+ | j  j } | j  j } | j  j   } Wn t k
 r? YnPXt j | j k r} | r} | j t j d 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y | j  j   Wn t k
 r3t | j  SYn X| j t j | j  j d | d | d t j
 d t j	 d t j pvd d	 t j p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.
        pathdomainCookieNi  max_ageexpiressecurehttponly)zCookie)r   accessedmodifiedZis_emptyAttributeErrorr   r   r   Zdelete_cookieZSESSION_COOKIE_PATHZSESSION_COOKIE_DOMAINr   ZSESSION_SAVE_EVERY_REQUESTZget_expire_at_browser_closeZget_expiry_agetimer   status_codesaver   r   r   
set_cookier   ZSESSION_COOKIE_SECUREZSESSION_COOKIE_HTTPONLY)	r   r   responser   r   emptyr   r   Zexpires_timer   r   r   process_response   sB    				z"SessionMiddleware.process_response)__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.shortcutsr   Zdjango.utils.cacher   Zdjango.utils.deprecationr   Zdjango.utils.httpr   r	   r   r   r   r   <module>   s   