
     h2                     N    d Z ddlmZ ddlmZ ddlmZ dZ G d de          ZdS )	z#
Cached, database-backed sessions.
    )settings)SessionStore)cachesz!django.contrib.sessions.cached_dbc                   l     e Zd ZdZeZd fd	Zed             Zd Z	 fdZ
d fd	Zd fd		Zd
 Z xZS )r   z5
    Implement cached, database backed sessions.
    Nc                     t           t          j                 | _        t	                                          |           d S N)r   r   SESSION_CACHE_ALIAS_cachesuper__init__selfsession_key	__class__s     i/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/django/contrib/sessions/backends/cached_db.pyr   zSessionStore.__init__   s0    X9:%%%%%    c                 :    | j         |                                 z   S r   )cache_key_prefix_get_or_create_session_keyr   s    r   	cache_keyzSessionStore.cache_key   s    $t'F'F'H'HHHr   c                 J   	 | j                             | j                  }n# t          $ r d }Y nw xY w|m|                                 }|rU|                     |j                  }| j                             | j        ||                     |j	                             ni }|S )N)expiry)
r
   getr   	Exception_get_session_from_dbdecodesession_datasetget_expiry_ageexpire_date)r   datass      r   loadzSessionStore.load   s    	;??4>22DD 	 	 	 DDD	
 <))++A {{1>22ND$*=*=Q]*=*S*S    s   " 11c                 l    |r| j         |z   | j        v p t                                          |          S r   )r   r
   r   existsr   s     r   r&   zSessionStore.exists.   s;     E&4D+ww~~k**	
r   Fc                     t                                          |           | j                            | j        | j        |                                            d S r   )r   saver
   r   r   _sessionr    )r   must_creater   s     r   r(   zSessionStore.save5   sG    [!!!t7J7J7L7LMMMMMr   c                     t                                          |           || j        d S | j        }| j                            | j        |z              d S r   )r   deleter   r
   r   r   s     r   r,   zSessionStore.delete9   sY    {###'*K40;>?????r   c                 p    |                                   |                     | j                   d| _        dS )zc
        Remove the current session data from the database and regenerate the
        key.
        N)clearr,   r   _session_keyr   s    r   flushzSessionStore.flushA   s4    
 	

D$%%% r   r   )F)__name__
__module____qualname____doc__
KEY_PREFIXr   r   propertyr   r$   r&   r(   r,   r0   __classcell__)r   s   @r   r   r      s          "& & & & & & I I XI  &
 
 
 
 
N N N N N N@ @ @ @ @ @! ! ! ! ! ! !r   r   N)	r4   django.confr   #django.contrib.sessions.backends.dbr   DBStoredjango.core.cacher   r5    r   r   <module>r=      s     !           G G G G G G $ $ $ $ $ $0
<! <! <! <! <!7 <! <! <! <! <!r   