
    Ed
                         d dl Z d dlZd dlmZ d dlmZmZ d dlmZmZ d dlm	Z	  G d de
e          Z G d d	e          ZdS )
    N)datetime)SessionInterfaceSessionMixin)appdb)modelsc                       e Zd ZddZdS )SessionNc                     || _         || _        d| _        |rt                              | |           d S t                              |            d S )NT)sessidipaddr	permanentdict__init__)selfdatar   r   s       "/var/www/html/conj/appl/session.pyr   zSession.__init__   sQ     	 MM$%%%%%MM$    )NNN)__name__
__module____qualname__r    r   r   r
   r
   
   s(                   r   r
   c                       e Zd Zd Zd ZdS )SQLA_SessionInterfacec                 ~   t           j        j                            t           j        j        t          j                    k                                               t          j	        
                                 |j                            |j                  }|j        }|s/t          t          t!          j                              |          S t           j        j                            |                                          }|r[|j        t          j                    k    r?t          j	                            |           t          j	        
                                 d }|r*t)          j        |j                  }t          ||          S t          t          t!          j                              |          S )N)r   r   
session_id)r   )r   r
   queryfilterexpiresr   utcnowdeleter   sessioncommitcookiesgetsession_cookie_nameremote_addrstruuiduuid4	filter_byfirstpickleloadsr   )r   r   requestr   r   savedr   s          r   open_sessionz"SQLA_SessionInterface.open_session   sY   ##&(/*;*;;	= 	==CVXXX

$$S%<==$  	D#djll"3"3FCCCC$..&.AAGGII 	U]ho&7&777Je$$$JE 	0<
++D4////c$*,,//????r   c                    |                      |          }|                     |          }t          j        j                            |j                                                  }|se|j        r\|r=t          j
                            |           t          j
                                         |                    |j        ||           d S t          j        t#          |                    }|                     ||          }|r-||_        ||_        t          j
                                         not          j
                            t          j        |j        t-          j                    |||j                             t          j
                                         |                    |j        |j        ||                     |          |||                     |                     d S )Nr   )domainpath)r   createdr    r   r   )r    httponlyr4   r5   secure)get_cookie_domainget_cookie_pathr   r
   r   r,   r   r-   modifiedr   r#   r"   r$   delete_cookier'   r.   dumpsr   get_expiration_timer   r    addr   r!   r   
set_cookieget_cookie_httponlyget_cookie_secure)	r   r   r#   responser4   r5   r1   r   r    s	            r   save_sessionz"SQLA_SessionInterface.save_session2   s   '',,##C(($..3:> / C CCH577 	  	 A (J%%e,,,J%%'''&&s'>.44 ' A A AF|DMM****388 	 EJ#EMJJNN6>W^#+?#4#4g $W^= = = > > > JC3W^$+%)%=%=c%B%B#)#'#9#9##>#>	 	 	@ 	@ 	@ 	@ 	@r   N)r   r   r   r2   rD   r   r   r   r   r      s:        @ @ @8!@ !@ !@ !@ !@r   r   )r*   r.   r   flask.sessionsr   r   applr   r   r   r   r
   r   r   r   r   <module>rG      s                  9 9 9 9 9 9 9 9                       dL      ?@ ?@ ?@ ?@ ?@, ?@ ?@ ?@ ?@ ?@r   