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: //proc/self/root/usr/local/CyberCP/userManagment/__pycache__/views.cpython-310.pyc
o

��hJ��@sTddlmZmZddlmZddlmZddlmZm	Z	ddl
Z
ddlmZddl
mZddlmZdd	lmZdd
lmZddlmZdd
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Z d d!�Z!d"d#�Z"d$d%�Z#d&d'�Z$d(d)�Z%d*d+�Z&d,d-�Z'd.d/�Z(d0d1�Z)d2d3�Z*d4d5�Z+d6d7�Z,d8d9�Z-d:d;�Z.d<d=�Z/dS)>�)�render�redirect)�HttpResponse)�
loadLoginPage)�
Administrator�ACLN)�hashPassword)�
ACLManager)�httpProc)�virtualHostUtilities)�
secMiddleware)�
SecurityLevelcCsZ|jd}tjj|d�}t�|�}|ddkrd}n|d}t|d|j|d�d�}|��S)N�userID��pk�admin��	listUserszuserManagment/index.html)�typer)	�sessionr�objects�getr	�	loadedACLr
rr)�request�valr�
currentACLr�proc�r�)/usr/local/CyberCP/userManagment/views.py�loadUserHomes

�rcCsn|jd}tjj|d�}i}|j|d<|j|d<|j|d<|j|d<|j|d<|j	j
|d<t|d	|�}|��S)
Nrr�userName�	firstName�lastName�
websitesLimit�email�
accountACLzuserManagment/userProfile.html)
rrrrr r!r"�initWebsitesLimitr$�acl�namer
r)rrr�	AdminDatarrrr�viewProfile!s





�r*cCs�|jd}t�|�}|ddkr#t��}t|d|t��d��}|��S|ddkr<t��}t|d|t��d��}|��S|ddkrTdg}t|d|t��d��}|��St��S)	NrrrzuserManagment/createUser.html)�aclNames�securityLevels�
changeUserACL�
createNewUser�user)	rr	r�unFileteredACLsr
r
�listr�	loadError)rrrr+rrrr�
createUser3s*

���r3cCsD|jd}t�|�}t�||�}|�d�t|dd|id�}|��S)NrrzuserManagment/apiAccess.html�	acctNames)rr	r�loadDeletionUsers�appendr
r�rrr�
adminNamesrrrr�	apiAccessJs


�r9c

Cs�zQ|jd}t�|�}t�|j�}|ddkr&ddd�}t�|�}t|�WS|d}|d}tj	j
|d	�}|d
kr=d|_nd|_|��ddi}t�|�}t|�WSt
yv}	zdt|	�t|	�d�}t�|�}t|�WYd}	~	Sd}	~	ww)
Nrrrrz5Only administrators are allowed to perform this task.)�status�
error_message�accountUsername�access�r �Enabler:�r:�errorMessager;)rr	r�json�loads�body�dumpsrrrr�api�save�
BaseException�str)
rrr�data�
finalResponse�	json_datar<r=�userAcct�msgrrr�saveChangesAPIAccessTs0







��rOc
CsX�z��zjz|jd}t�|�}t�|j�}Wn|d}|}t�|�}Y|d}|d}|d}|d}|d}|d}	|d}
t�d	|�d
kr[d
d
dd�}t�|�}t|�WWSt�d	|�d
krtd
d
d
d�}t�|�}t|�WWSd
dl	}
|
�
|�s�d
d
dd�}t�|�}t|�WWSz|d}Wnd}Ytjj
|
d�}
|
jdkr�d}nd}|dkr�tj}ntj}t�||�}t�|�}tjj
|d�}t�||	�d
kr�d
d
dd�}t�|�}t|�WWS|ddkr�t|||||||	|j|
||d�}|��n`|ddk�rt|||||||	|j|
||d�}|��nD|ddk�rL|
jdk�r7d
d
dd�}t�|�}t|�WWSt|||||||	|j|
||d�}|��nd
d
dd�}t�|�}t|�WWSdddd�}t�|�}t|�WWSt�y�}zd
d
t|�d�}t�|�}t|�WYd}~WSd}~wwt�y�d
d
dd�}t�|�}t|�YSw)Nrr!r"r$r �passwordr#�selectedACLu8^[\w'\-,.][^0-9_!¡?÷?¿/\+=@#$%ˆ&*(){}|~<>;:[\]]{2,}$rz_First Name can only contain alphabetic characters, and should be more than 2 characters long...)r:�createStatusr;z^Last Name can only contain alphabetic characters, and should be more than 2 characters long...zInvalid email address.�
securityLevel�HIGH�r(r��LOWr�4You've reached maximum websites limit as a reseller.r)r!r"r$rr rPr&�ownerr'�tokenrSr-r.r/z/You are not authorized to access this resource.�None�Not logged in as admin)rr	rrBrCrD�
CheckRegExrEr�
validatorsr$rrr�adminStatusrrWrTr�
generateToken�
hash_passwordr�websitesLimitCheckrrGr(rHrI�KeyError)rrrrJr!r"r$r rPr#rQ�data_retrLr^rSrrZ�currentAdmin�
final_json�newAdminrNrrr�submitUserCreationts�




�


�
�
�
�
�
�
�

��
�rhcCs2|jd}t�|�}t|d|t��d��}|��S)NrzuserManagment/modifyUser.html)r4r,)rr	�loadAllUsersr
r
r1r)rr�	userNamesrrrr�modifyUserss

�rkcCs�z�|jd}z�|jdkr�t�|j�}|d}tjj|d�}t�	|�}tjj|d�}|ddkr0n|j
|jkr7n|j|jkr>ndd	d
�}t�|�}t
|�WWS|j}	|j}
|j}|j}ddl}
|jdkrl|
��|_|��|
j�|j�j|dd
�}|j|	|
||jj|t|j�j||j|jd�
}dd|d�}t�|�}t
|�WWSWWdSty�}zdt |�d
�}t�|�}t
|�WYd}~WSd}~wwt!y�ddd
�}t�|�}t
|�YSw)Nr�POSTr<r>rrrr�Un-authorized access.��fetchStatusr;r[�
CyberPanel)�issuer_name)
�idr!r"r$r'r#rS�otpauth�twofa�	secretKey)ror;�userDetailsr\)"r�methodrBrCrDrrrr	rrYrrErr!r"r$r&�pyotpru�
random_base32rG�totp�TOTP�provisioning_urirrr'r(r
rS�twoFArHrIrc)rrrJr<r/r�
loggedUserrdrLr!r"r$r#rxrsrvrNrrr�fetchUserDetails
sj







�
�3
��

�rc
Cs<�zz|jd}Wn|d}Yz�zt�|j�}Wn|}Y|d}|d}|d}|d}z|d}Wnd}Yzt|d�}Wnd	}Ytjj|d
�}	t�	|�}
tjj|d�}|
dd
krhn|	j
|jkron|	j|jkrvnd	dd�}t�|�}
t
|
�WWSt�||d�}t�|d�}||	_||	_||	_||	_||	_d	|	_||	_|dkr�tj|	_ntj|	_|	��d}|dkr�t|d�}|�|�|��d
d
dd�}t�|�}
t
|
�WWSt �y}zd	d	t!|�d�}t�|�}
t
|
�WYd}~WSd}~wwt"�yd	d	dd�}t�|�}
t
|
�YSw)Nrr<r!r"r$rSrTrtrr>rrrrmrn�passwordByPassrWz/home/cyberpanel/adminEmail�wr[�r:�
saveStatusr;r\)#rrBrCrD�intrrrr	rrYrrErrr`rar!r"r$rPrZrr}rrWrSrTrG�open�write�closerHrIrc)rrrJr<r!r"r$rSrtr/rr~rdrLrZrP�adminEmailPath�writeToFilerNrrr�saveModificationsLs�








��
�r�cCs||jd}t�|�}|ddkr"t�||�}t|dd|i�}|��S|ddkr:t�||�}t|dd|i�}|��St��S)NrrrzuserManagment/deleteUser.htmlr4�
deleteUser)rr	rr5r
rr2r7rrrr��s

��r�c
Cs�z�z|jd}Wn|d}Yz�zt�|j�}Wn|}Y|d}z|d}Wnd}Yt�|�}tjj|d�}tjj|d�}t�	|||�r�|rqt�|j
�}t�||j
�}	ddlm
}
|
�}|	D]
}|�|d|i�qftjj|d�}
tjj|
j
d	�}|D]}|��q�|
��d
d
dd�}t�|�}t|�WWSddd
d�}t�|�}t|�WWSty�}zddt|�d�}t�|�}t|�WYd}~WSd}~wwty�ddd�}t�|�}t|�YSw)Nrr<�forcerrr>)�WebsiteManager�websiteName)rYrr[)r:�deleteStatusr;zNot enough privileges.r\)r�r;)rrBrCrDr	rrrr�checkUserOwnerShipr�findAllSites�websiteFunctions.websiter��submitWebsiteDeletion�filter�deleterErrHrIrc)rrrJr<r�r�currentUser�userInQuestion�userACL�websitesNamer��wm�websiter/�
childUsers�itemsrdrLrNrrr�submitUserDeletion�s`





��

�r�cCst|ddd�}|��S)NzuserManagment/createACL.htmlr)r
r)rrrrr�createNewACL�s�r�c
Cs�zF|jd}t�|�}|ddkr8t�|j�}|dr d|d<nd|d<t|dt�|�d�}|��d	di}nt�	�WSt�|�}t
|�WStyk}zdt|�t|�d
�}t�|�}t
|�WYd}~Sd}~ww)Nrrr�	makeAdminr_r�aclName)r(�configr:r@)
rr	rrBrCrDrrErG�
loadErrorJsonrrHrI)rrrrJ�newACLrKrLrNrrr�
createACLFunc�s(







��r�cC�"t��}t|dd|id�}|��S)NzuserManagment/deleteACL.htmlr+r�r	�findAllACLsr
r�rr+rrrr�	deleteACL�
�r�c
Cs�zG|jd}t�|�}|ddkr9t�|j�}tjj|dd�}|j	�
���dkr2|��ddi}ndddd	�}nt�
�WSt�|�}t|�WStyl}zdt|�t|�d
�}t�|�}t|�WYd}~Sd}~ww)Nrrr�aclToBeDeletedrUrr:z0This ACL is currently in used by existing users.)r:�
errorMesssager;r@)rr	rrBrCrDrrr�administrator_set�all�countr�r�rErrHrI)rrrrJr'rKrLrNrrr�
deleteACLFuncs*


�



��r�cCr�)NzuserManagment/modifyACL.htmlr+rr�r�rrr�	modifyACL9r�r�c
Cs�z;|jd}t�|�}|ddkr-t�|j�}i}tjj|dd�}t�|j	�}d|d<nt�
�WSt�|�}t|�WSt
y]}zdt|�d�}t�|�}t|�WYd}~Sd}~ww)	Nrrr�aclToModifyrUr:r)r:rA)rr	rrBrCrDrrrr�r�rErrHrI)rrrrJrKr'rLrNrrr�fetchACLDetails@s$






��r�c

Cszg|jd}t�|�}|ddkrZt�|j�}tjj|dd�}t�	|�|_
|��t|d�dkrD|j
��}|D]	}d|_|��q9n|j
��}|D]	}d|_|��qKddi}nt��}t�	|�}t|�WSty�}	zd	t|	�t|	�d
�}t�	|�}t|�WYd}	~	Sd}	~	ww)Nrrrr�rUr_rVr:rr@)rr	rrBrCrDrrrrEr�rGr�r�r�rr�rrHrI)
rrrrJr'�allUsersr�rKrLrNrrr�submitACLModificationsYs8



�





��r�cCs�|jd}t�|�}|ddkr&t��}t��}t|d||d�d�}|��S|ddkrAt��}t��}t|d||d��}|��St��S)Nrrrz userManagment/changeUserACL.html)r+�	usersListr-)rr	rr0�findAllUsersr
rr2)rrrr+rjrrrrr-�s"


��r-c	
CsDz||jd}t�|j�}|ddkr"dddd�}t�|�}t|�WSt�|�}|ddkrKtj	j
|dd	�}tj	j
|dd
�}||_|�
�ddi}n(|ddkrotj	j
|dd	�}tj	j
|dd
�}||_|�
�ddi}nt��}t�|�}t|�WSty�}zdt|�t|�d�}t�|�}t|�WYd}~Sd}~ww)
Nr�selectedUserrr�Super user can not be modified.r@rrQrUr>r:r-)rrBrCrDrErr	rrrrrr'rGr�rHrI)	rrrJrKrLrrQr�rNrrr�
changeACLFunc�s@
�







��r�cCs�|jd}t�|�}|ddkr(t�||�}t�|�}t|d||d��}|��S|ddkrFt�||�}t�|�}t|d||d��}|��St��S)Nrrrz!userManagment/resellerCenter.html)�userToBeModified�resellerPrivUsers�resellerCenter)rr	rr5�userWithResellerPrivr
rr2)rrrrjr�rrrrr��s"


�
�r�c

Cs�z�|jd}t�|j�}|ddkr"dddd�}t�|�}t|�WSt�|�}|ddkr.n|ddkr5nt��WSt	j
j|d	�}t	j
j|dd
�}t	j
j|dd
�}t�|||�dkset�|||�dkrjt��WSzt�
||d|�dkr�dd
d
d�}t�|�}t|�WWSWnY|j|_z|d|_WnY|��ddi}t�|�}t|�WSty�}	zdt|	�t|	�d�}t�|�}t|�WYd}	~	Sd}	~	ww)Nrr�rrr�r@rr�rr>�newOwnerr#rXr:)rrBrCrDrErr	rr�rrrr�rbrrYr&rGrHrI)
rrrJrKrLrr~r�r�rNrrr�saveResellerChanges�s^
�



$
�
�


��r�cCs�|jd}t�|�}|ddkrt��}n|ddkr t��}n|ddkr*dg}ng}|ddkr8t�|�}n|ddkrDt�|�}ng}|ddkrYt|d||d	��}|��S|d
dkrlt|d||d	��}|��St��S)Nrrrr-r.r/r�zuserManagment/listUsers.html)r+r�r)rr	rr0r�r
rr2)rrrr+r�rrrrr
s2



��rc	Csxz�z|jd}Wn|d}Yt�|�}|ddkr"t�|�}n|ddkr.t�|�}nt��WSd}d}|D]b}d}|j��D]}t�|�\}	}
}}|	|}qBz
t	j
j|jd�}
Wnd|_|�
�t	j
jdd�}
Y|j|j|
j|jjdt|�|j|jd	�}|dkr�|t�|�}d}q9|d
t�|�}q9|d}t�ddd|d
��}t|�WSty�tt�YSw)Nrrrr�[rrz%sMB)rrr(rYr'�	diskUsage�websites�state�,�]r[)r:ror;rJ)rr	r�fetchTableUserObjectsr��websites_setr�r�	FindStatsrrrrYrGrr r'r(rIr&r�rBrErrcrr)rrr�usersrL�checkerr��diskUsageCurrent�webs�	DiskUsage�DiskUsagePercentage�bwInMB�bwUsagerY�dicrfrrr�fetchTableUsers)sT




�	
�r�c
Cs�z�z|jd}Wn|d}Yz�zt�|j�}Wn|}Y|d}|d}tjj|d�}t�|�}tjj|d�}|ddkrCn|j	|j
krJn|j
|j
krQndd	d
�}t�|�}	t|	�WWS|dkrid|_
nd
|_
|��i}
||
d<t�|j
�|
d<||
d<ddlm}|d|
�}|��ddi}t�|�}	t|	�WWSty�}
zddt|
�d�}t�|�}	t|	�WYd}
~
WSd}
~
wwty�dddd�}t�|�}	t|	�YSw)Nrr<r�r>rrrrrmrn�SUSPEND�	SUSPENDED�ACTIVEr/r)�UserManager�controlUserStater:r�r\)rrBrCrDrrrr	rrYrrErr�rG�userManagment.userManagerr��startrHrIrc)rrrJr<r�r/rr~rdrL�	extraArgsr��umrNrrrr�dsb






��
�r�)0�django.shortcutsrr�django.httpr�loginSystem.viewsr�loginSystem.modelsrrrB�plogicalr�plogical.aclr	�plogical.httpProcr
�plogical.virtualHostUtilitiesr�CyberCP.secMiddlewarer�CyberCP.SecurityLevelr
rr*r3r9rOrhrkrr�r�r�r�r�r�r�r�r�r�r-r�r�r�rr�r�rrrr�<module>sJ
 BRB')9;