File manager - Edit - /usr/local/CyberPanel/lib/python3.10/site-packages/django/contrib/sessions/backends/__pycache__/db.cpython-310.pyc
Back
o �h� � @ sl d dl Z d dlmZmZmZ d dlmZ d dlmZm Z m Z mZ d dlm Z d dlmZ G dd� de�ZdS ) � N)�CreateError�SessionBase�UpdateError)�SuspiciousOperation)� DatabaseError�IntegrityError�router�transaction)�timezone)�cached_propertyc s� e Zd ZdZd� fdd� Zedd� �Zedd� �Zd d � Z dd� Z d d� Zdd� Zdd� Z ddd�Zddd�Zedd� �Z� ZS )�SessionStorez+ Implement database session store. Nc s t � �|� d S �N)�super�__init__��self�session_key�� __class__� �Y/usr/local/CyberPanel/lib/python3.10/site-packages/django/contrib/sessions/backends/db.pyr s zSessionStore.__init__c C s ddl m} |S )Nr )�Session)�django.contrib.sessions.modelsr )�clsr r r r �get_model_class s zSessionStore.get_model_classc C s | � � S r )r �r r r r �model s zSessionStore.modelc C sz z | j jj| jt�� d�W S | j jtfy< } zt|t�r.t � d|jj �}|� t|�� d | _W Y d }~d S d }~ww )N)r �expire_date__gtzdjango.security.%s)r �objects�getr r �now�DoesNotExistr � isinstance�logging� getLoggerr �__name__�warning�str�_session_key)r �e�loggerr r r �_get_session_from_db s � ��z!SessionStore._get_session_from_dbc C s | � � }|r| �|j�S i S r )r+ �decode�session_data)r �sr r r �load) s zSessionStore.loadc C s | j jj|d��� S �N)r )r r �filter�existsr r r r r2 - s zSessionStore.existsc C s: | � � | _z| jdd� W n ty Y q w d| _d S )NT)�must_create)�_get_new_session_keyr( �saver �modifiedr r r r �create0 s �zSessionStore.createc C s | j | �� | �|�| �� d�S )z� Return a new instance of the session model object, which represents the current session state. Intended to be used for saving the session data to the database. )r r- �expire_date)r �_get_or_create_session_key�encode�get_expiry_date)r �datar r r �create_model_instance= s �z"SessionStore.create_model_instanceFc C s� | j du r | �� S | j|d�}| �|�}tj| j|d�}z$tj|d�� |j || |d� W d � W dS 1 s9w Y W dS t yL |rKt�� tyW |sVt �� w )z� Save the current session data to the database. If 'must_create' is True, raise a database error if the saving operation doesn't create a new entry (as opposed to possibly updating an existing entry). N)�no_load)�instance)�using)�force_insert�force_updater@ )r r7 �_get_sessionr= r �db_for_writer r �atomicr5 r r r r )r r3 r<