HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/aiScanner/__pycache__/scheduled_views.cpython-310.pyc
o

��h&0�@s�ddlmZmZddlmZddlmZddlmZddl	m
Z
ddlZeddg�d	d
��Zeddg�dd
��Z
eedg�dd���Zedg�dd��ZdS)�)�render�redirect)�JsonResponse)�csrf_exempt)�require_http_methods)�
loadLoginPageN�GET�POSTc
Cs��z�|jd}ddlm}ddlm}ddlm}|jj|d�}|�	|�}|j
dkr�|d	dkr6|j��}n|�|�}|jj
|d
�}g}	|D]^}
|	�id|
j�d|
j�d
|
j�d|
j�d|
j�d|
j�d��d|
j�d|
j�d|
j�d|
jr{|
j��nd�d|
jr�|
j��nd�d|
j�d|
j�d|
j�d|
j�d|
j �d|
j!����qFt"d|	d��WS|j
d k�r�t#�$|j%�}gd!�}|D]}
|
|vs�||
s�t"d"d#|
��d$��WSq�t&|d
t'�r�t(|d
�dkr�t"d"d%d$��WS|d	dk�rdd&l)m*}t+|jj
|d'�j,d(dd)��}t+|d
�}|�-|��st"d"d*d$��WSdd+l.m.}z|�/|dd��0�}Wnt1�yAt"d"d,d$��YWSw|||d|d|d||�dd�|�dd�|�dd"�|�dd�d-�	}|�2|d
�|�d��ry|�3|d�|dd.k�r�d|v�r�t4|d�|_n|dd/v�r�d|v�r�t4|d�|_|�5�t"d|jd0��WSWdSt6�y�t"d"d1d$��YSt7�y�}zt"d"t8|�d$��WYd}~Sd}~ww)2zManage scheduled scans�userIDr��
Administrator���
ScheduledScan��
ACLManager��pkr�admin)�	admin__in�id�name�domains�	frequency�	scan_type�time_of_day�%H:%M�day_of_week�day_of_month�status�last_runN�next_run�email_notifications�notification_emails�notify_on_threats�notify_on_completion�notify_on_failure�
created_atT)�success�scheduled_scansr	)rrrrrFzMissing required field: �r(�errorz$At least one domain must be selected)�Websites)r�domain)�flatz6You do not have access to some of the selected domains)�datetimezInvalid time format)	rrrrrr"r$r%r&�weekly)�monthly�	quarterly)r(r�Not authenticated)9�session�loginSystem.modelsr�modelsr�plogical.aclr�objects�get�	loadedACL�method�all�loadUserObjects�filter�appendrr�domain_listrrr�strftimerrrr �	isoformatr!r"�notification_email_listr$r%r&r'r�json�loads�body�
isinstance�list�len�websiteFunctions.modelsr,�set�values_list�issubsetr/�strptime�time�
ValueError�set_domains�set_notification_emails�int�save�KeyError�	Exception�str)�requestr
rrrr�
currentACLr)�user_admins�	scan_data�scan�data�required_fields�fieldr,�user_domains�requested_domainsr/�time_obj�scheduled_scan�e�re�//usr/local/CyberCP/aiScanner/scheduled_views.py�scheduledScans	s�



��������	�
���
����
���



�
�<��rg�DELETEc
Cs�z�|jd}ddlm}ddlm}ddlm}|jj|d�}|�	|�}z"|jj|d�}|d	dkrE|�
|�}	|j|	vrEtd
dd��WWSWn|j
yXtd
d
d��YWSw|jdkr�id|j�d|j�d|j�d|j�d|j�d|j�d��d|j�d|j�d|j�d|jr�|j��nd�d|jr�|j��nd�d|j�d|j�d|j�d|j�d |j �d!|j!���}
td"|
d#��WS|jd$kr�|�"�td%d"i�WSWdSt#y�td
d&d��YSt$y�}ztd
t%|�d��WYd}~Sd}~ww)'z'Get or delete a specific scheduled scanr
rrr
rrr�rrF�$Access denied to this scheduled scanr*�Scheduled scan not foundrrrrrrrrrrrr Nr!r"r#r$r%r&r'T)r(rcrhr(r3)&r4r5rr6rr7rr8r9r:r=rr�DoesNotExistr;rrr@rrrrArrrr rBr!r"rCr$r%r&r'�deleterUrVrW)rX�scan_idr
rrrrrYrcrZr[rdrererf�scheduledScanDetailys�



��
��������	�
���
����
�
���roc
Cs8zq|jd}ddlm}ddlm}ddlm}|jj|d�}|�	|�}z"|jj|d�}|d	dkrE|�
|�}	|j|	vrEtd
dd��WWSWn|j
yXtd
d
d��YWSw|jdkrbd|_nd|_|��td|jd��WSty�td
dd��YSty�}
ztd
t|
�d��WYd}
~
Sd}
~
ww)z,Toggle scheduled scan status (active/paused)r
rrr
rrrrirFrjr*rk�active�pausedT)r(rr3N)r4r5rr6rr7rr8r9r:r=rrrlrrTrUrVrW)rXrnr
rrrrrYrcrZrdrererf�toggleScheduledScan�s8



��
��rrcCs�z�|jd}ddlm}ddlm}m}ddlm}|jj	|d�}|�
|�}z"|jj	|d�}	|d	dkrG|�|�}
|	j|
vrGt
d
dd��WWSWn|jyZt
d
d
d��YWSw|jj|	d��d�dd�}g}|D]2}
|�|
j|
j��|
j|
j|
j|
j|
jt|
j�|
j|
j|
jr�|
j��nd|
jr�|
j��ndd��qmt
d|d��WSt y�t
d
dd��YSt!y�}zt
d
t"|�d��WYd}~Sd}~ww)z*Get execution history for a scheduled scanr
rrr
)r�ScheduledScanExecutionrrrirFrjr*rk)rcz-execution_timeN�)r�execution_timer�domains_scanned�total_scans�successful_scans�failed_scans�
total_cost�scan_ids�
error_message�
started_at�completed_atT)r(�
executionsr3)#r4r5rr6rrsr7rr8r9r:r=rrrlr>�order_byr?rrurBr�scanned_domainsrwrxry�floatrz�scan_id_listr|r}r~rUrVrW)rXrnr
rrrsrrrYrcrZr�execution_data�	executionrdrererf�scheduledScanExecutions�sR



��
���r�)�django.shortcutsrr�django.httpr�django.views.decorators.csrfr�django.views.decorators.httpr�loginSystem.viewsrrDrgrorrr�rerererf�<module>s


o
:'