File: //usr/local/CyberCP/CyberCP/__pycache__/secMiddleware.cpython-310.pyc
o
��h? � @ sR d dl Zd dlmZ d dlmZmZ d dlZd dl Z d dl
mZ G dd� d�ZdS )� N)�CyberCPLogFileWriter)�HttpResponse�render)�
Administratorc @ s, e Zd ZdZdZdd� Zdd� Zdd� Zd S )
�
secMiddlewarer � c C s$ | j �d�}|d u r| j �d�}|S )N�HTTP_CF_CONNECTING_IP�REMOTE_ADDR)�META�get)�request�ip� r �+/usr/local/CyberCP/CyberCP/secMiddleware.py�
get_client_ip s zsecMiddleware.get_client_ipc C s
|| _ d S )N)�get_response)�selfr r r r �__init__ s
zsecMiddleware.__init__c
C sf ddl m} |�� �d�d }ddlm} ||�j}dd l}|�d�}|dksB|dksB|dksB|d ksB|� d
�sB|�
|�sB|� d�rCn2z|jd }W n* t|j
�rcd
d
d�} t�| �}
t|
� Y S ddlm} ddlm} ||� Y S z�|jd }
tjj|
d�}t�|�}|�d�dkr�|jd |ks�|jtjkr�n[|jd= |jd= t�t�|�� ddd�} t�| �}
t|
�W S d�t�|��d�d d� �}|jd |ks�|jtjkr�n|jd= |jd= t�t�|�� ddd�} t�| �}
t|
�W S W n Y t|j
��r��z[|�
|��r| � |�}|W S zt�!|j
�}W n |j"}Y |�#� D �]5\}}d}|dk�rg|dk�rgt$|�t%k�redd l}|�
d|��rL�q't�d|� �� ddd�} t�| �}
t|
� W S �q'|dk�rn�q'|dk�r�|dk�r�|dv �r�q't�d|� �� d d d�} t�| �}
t|
� W S t$|�t%k�s�t$|�t&k�r�n�t$|�t'k�rnd!}|D ]�}t(|t%��rk|�d"�dk�sR|�d#�dk�sR|�d$�dk�sR|�d%�dk�sR|�d&�dk�sR|�d'�dk�sR|�d(�dk�sR|�d)�dk�sR|�d*�dk�sR|�d+�dk�sR|�d,�dk�sR|�d-�dk�sR|�d.�dk�sR|�d/�dk�sR|�d0�dk�sR|�d�dk�sR|�d1�dk�sR|�d2�dk�sR|�d3�dk�rkt�|j
� d4d4d�} t�| �}
t|
� W S �q�n�q'|d5k�r�|�
d6|�d k�r�|d7k�r�t�|j
� d8d8d�} t�| �}
t|
� W S |�d9�dk�p�|�d:�dk�p�|�d;�dk�p�|�d<�dk�p�|�d=�dk�p�|�d>�dk�p�|�d?�dk�p�|�d@�dk�p�|�dA�dk}|�r]t(|t%t&f��r[|�d"�dk�sD|�d#�dk�sD|�d$�dk�sD|�d%�dk�sD|�dB�dk�sD|�d&�dk�sD|�d'�dk�sD|�d(�dk�sD|�d)�dk�sD|�dC�dk�sD|�dD�dk�r[t�|j
� dEdFd�} t�| �}
t|
� W S �q'|dGk�s�|dHk�s�|dIk�s�|dJk�s�|dKk�s�|dLk�s�|dMk�s�|dNk�s�|dOk�s�|dPk�s�|d5k�s�|dk�s�|dQk�s�|dRk�s�|dSk�s�|dTk�s�|dUk�s�|dVk�s�|dWk�s�|dXk�s�|dYk�s�|dZk�s�|d[k�s�|d\k�s�|d]k�s�|d^k�s�|d_k�s�|d`k�s�|dak�s�|dbk�r��q'|�s�|dk�r�t$|�t%k�st$|�t&k�r�|�d"�dk�s�|�d#�dk�s�|�d$�dk�s�|�d%�dk�s�|�d&�dk�s�|�d'�dk�s�|�d(�dk�s�|�d)�dk�s�|�d*�dk�s�|�d+�dk�s�|�d,�dk�s�|�d-�dk�s�|�d.�dk�s�|�d/�dk�s�|�d0�dk�s�|�d�dk�s�|�d1�dk�s�|�d2�dk�s�|�d3�dk�r�t�|j
� d4d4d�} t�| �}
t|
� W S |�s\|�d$�dk�sE|�d%�dk�sE|�d&�dk�sE|�d'�dk�sE|�d(�dk�sE|�d)�dk�sE|�d*�dk�sE|�d+�dk�sE|�d,�dk�sE|�d-�dk�sE|�d.�dk�sE|�d/�dk�sE|�d0�dk�sE|�d�dk�sE|�d1�dk�sE|�d2�dk�sE|�d3�dk�r\t�|j
� d8dcd�} t�| �}
t|
� W S �q'W n, t)�y� } zddt%|�� �ddt%|�� �d�} t�| �}
t|
�W Y d }~S d }~ww | � |�}de|df<