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/676643/root/usr/local/CyberCP/databases/__pycache__/databaseManager.cpython-310.pyc
o

��h�8�@s�ddlZddlZddlZddlmZej�d�ej�	dd�e�
�ddlmZddl
Z
ddlmZddlmZddlmZdd	lmZdd
lmZmZddlZddlmZddlmZddlm Z dd
l!m"Z"Gdd�d�Z#dd�Z$e%dkr}e$�dSdS)�N)�redirectz/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�HttpResponse)�
ACLManager)�mysqlUtilities)�Websites)�	Databases�DBMeta)�
Administrator)�httpProc)�DBUsersc@s�eZdZdZd!dd�Zd!dd�Zd!dd�Zd"d	d
�Zd!dd�Zd!d
d�Z	d!dd�Z
d!dd�Zd!dd�Zd!dd�Z
d!dd�Zd!dd�Zd!dd�Zd!dd�Zedd ��ZdS)#�DatabaseManager�
remote_accessNcC�d}t||dd�}|��S)Nzdatabases/index.html�createDatabase�r�render��self�request�userID�template�proc�r�//usr/local/CyberCP/databases/databaseManager.py�loadDatabaseHome�z DatabaseManager.loadDatabaseHomecCr)Nzdatabases/phpMyAdmin.htmlrrrrrr�
phpMyAdmin rzDatabaseManager.phpMyAdmincC�4t�|�}t�||�}d}t||d|id�}|��S)Nzdatabases/createDatabase.html�websitesListr�r�	loadedACL�findAllSitesrr�rrr�
currentACL�websitesNamerrrrrr%�

zDatabaseManager.createDatabasec
CsHz�t�|�}tjj|d�}t�|d�dkrt�dd�WS|d}|d}|d}|d}	|d	}
t�|||�d
kr:nt��WS|dkrO|
d|}|
d|}t�	|||	|�}|dd
krod
d
d||d
�}t
�|�}
t|
�WSdd|d
d�}t
�|�}
t|
�WSt
y�}zddt|�d�}t
�|�}
t|
�WYd}~Sd}~ww)N��pkrr�createDBStatus�databaseWebsite�dbName�
dbUsername�
dbPassword�webUserName��_�None)�statusr)�
error_messager+r,)r2r)r3)rr!r
�objects�get�currentContextPermission�
loadErrorJson�checkOwnershipr�submitDBCreation�json�dumpsr�
BaseException�str)rr�data�rAPIr$�adminr*r+r,r-�webUsername�result�data_ret�	json_data�msgrrrr9,s@

�




��z DatabaseManager.submitDBCreationcCr)Nzdatabases/deleteDatabase.htmlr�deleteDatabaser r#rrrrFSr&zDatabaseManager.deleteDatabasec
Cs�z:ddlm}|��|jkr7d}dt��d�}ddl}|j|t�	|�d�}|��d}|dkr2d	}	nt
d
�WSd}	WntyN}
zd}	WYd}
~
nd}
~
wwd}	t||	dd�}|�
�S)
Nr)�ProcessUtilitiesz@https://platform.cyberpersons.com/CyberpanelAdOns/Adonpermission�Filemanager)�name�IP)r>r2r/zbaseTemplate/FileManager.htmlz(https://cyberpanel.net/cyberpanel-addonszdatabases/mysqlmanager.htmlr@)�plogical.processUtilitiesrG�decideServer�OLSr�fetchIP�requests�postr:r;rr<rr)rrrrG�urlr>rO�response�StatusrrErrrr�MySQLManagerZs,�
���zDatabaseManager.MySQLManagerc
Csbddlm}|�}|�|�}t�|j�}i}|�d�|d<|�d�|d<d}t|||d�}	|	��S)Nr)�CloudManager�ramInGB�confzdatabases/OptimizeMySQL.htmlr@)	�cloudAPI.cloudManagerrU�fetchRamr:�loads�contentr5rr)
rrrrU�cmrB�data1r>rrrrr�
OptimizeMySQLws
zDatabaseManager.OptimizeMySQLcCs*i}ddg|d<d}t|||d�}|��S)Nz10.6z10.11�
mysqlversionszdatabases/Updatemysql.htmlr@r)rrrr>rrrrr�Upgardemysql�s
zDatabaseManager.Upgardemysqlc
CsDzxt�|�}t�|d�dkrt�dd�WS|d}tjj|d�}t�|||�dkr*nt��WStjj|d�}t	jj
|d�}d	}d}	|D]"}
|
j|
j|
j
d
�}|	dkr\|t�|�}d}	qC|dt�|�}qC|d}t�ddd
|d��}t|�WSty�}
ztj�t|
��t�ddt|
�d��}t|�WYd}
~
Sd}
~
ww)NrFr�fetchStatusr*r'r/)�domain)�website�[)�idr+�dbUser�,�]r1)r2rar3r>)r2rar3)rr!r6r7r
r4r5r8rr�filterr(r+rfr:r;rr<�logging�CyberCPLogFileWriter�writeToFiler=)rrr>r$r*r@rc�	databasesrD�checker�items�dic�
final_jsonrErrr�fetchDatabases�s>

�
��zDatabaseManager.fetchDatabasesc
Cszdt�|�}tjj|d�}t�|d�dkrt�dd�WS|d}tjj|d�}t�|j	j
||�dkr3nt��WSt�|�}|ddkrSdddd	�}t
�|�}	t|	�WSdd|dd	�}t
�|�}	t|	�WSty�}
zddt|
�d	�}t
�|�}	t|	�WYd}
~
Sd}
~
ww)
Nr'rFr�deleteStatusr+)r+r/r1)r2rsr3)rr!r
r4r5r6r7rr8rcrbr�submitDBDeletionr:r;rr<r=)rrr>r$r@r+�dbrBrCrDrErrr�submitDatabaseDeletion�s0







��z&DatabaseManager.submitDatabaseDeletioncCr)Nzdatabases/listDataBases.html�AllWebsites�
listDatabasesr )rrrr$rwrrrrr�listDBs�r&zDatabaseManager.listDBsc
CsRz�t�|�}t�|d�dkrt�dd�WS|d}|d}tjj|d�}tjj|d�}t�	|dj
j||�dkr9nt��WSztjj|dt
jd	�}t�|j�d
}	Wnd}	Yt�||d|	�}
|
dkrvdddd�}t�|�}t|�WSddd
d�}t�|�}t|�WSty�}
zddt|
�d�}t�|�}t|�WYd}
~
Sd}
~
ww)Nrxr�changePasswordStatus�
dbUserNamer-�rfr'r/��database�key�remoteIPz$Please see CyberPanel main log file.)r2rzr3r1)rr!r6r7rr4rir
r5r8rcrbr	r
�
REMOTE_ACCESSr:rZ�valuer�changePasswordr;rr<r=)rrr>r$�userNamer-rur@�meta�host�resrCrDrErrrr��s<






��zDatabaseManager.changePasswordc
Cs>z|t�|�}t�|d�dkrt�dd�WS|d}tjj|d�}tjj|d�}t�	|dj
j||�dkr5nt��WSz!tjj|dt
jd�}dt�|j�d	d
�}t�|�}	t|	�WWSty|}
zddd
�}t�|�}	t|	�WYd}
~
WSd}
~
wwty�}
zdt|
�d�}t�|�}	t|	�WYd}
~
Sd}
~
ww)
Nrxrrzr{r|r'r/r}r�)r2�dbHost�	localhost�r2r3)rr!r6r7rr4rir
r5r8rcrbr	r
r�r:rZr�r;rr<r=)rrr>r$r�rur@r�rCrDrErrr�remoteAccesss6




��
��zDatabaseManager.remoteAccessc
Cs�z�t�|�}t�|d�dkrt�dd�WS|d}|d}tjj|d�}tjj|d�}t�	|dj
j||�dkr9nt��WSt�
|dj||�t�|dj|d	d|�tjj|d
d�}t�||jd|�d|i}	ztjj|dtjd�}
t�|	�|
_|
��Wnt|dt�|	�tjd
���Yddi}t�|�}t|�WSty�}
zdt|
�d�}t�|�}t|�WYd}
~
Sd}
~
ww)Nrxrrzr{r�r|r'r/�
cyberpanelr�)�userr�r})r~r�rr2r�)rr!r6r7rr4rir
r5r8rcrbr�allowRemoteAccessr+rrr��passwordr	r
r�r:r;r��saverr<r=)rrr>r$r�r�rur@�
dbUserInMysql�metaDatar�rCrDrErrr�
allowRemoteIP(s>

 


��zDatabaseManager.allowRemoteIPc

Cs�zUtjj|d�}d|j}t�|�}t�||�}t��}t	|d�}|�
|�|��t�
|j|�t�|j|�|D]}|j��D]
}t�|j|j�qAq:td|�WdStyp}	ztdt|	��WYd}	~	dSd}	~	ww)N)rez/etc/cyberpanel/�wz1,z0,)r
r4r5r�rr!�findWebsiteObjects�randomPassword�
generate_pass�open�write�closer�createDBUserr��
databases_set�all�allowGlobalUserAccessr+�printr<r=)
rr@�pathr$�websiteOBJs�finalUserPasswordrl�websrurErrr�generatePHPMYAdminDataRs(



���z&DatabaseManager.generatePHPMYAdminData)NN)NNN)�__name__�
__module__�__qualname__r�rrrr9rFrTr^r`rrrvryr�r�r��staticmethodr�rrrrr
s$




'




*


)
!*r
cCsRtjdd�}|jddd�|jddd�|��}|jdkr't�t|j��dSdS)	NzCyberPanel Installer)�description�functionzSpecific a function to call!)�helpz--userIDzLogged in user IDr�)	�argparse�ArgumentParser�add_argument�
parse_argsr�r
r��intr)�parser�argsrrr�mainps
�r��__main__)&�os.path�os�sys�django�django.shortcutsrr��append�environ�
setdefault�setup�django.httprr:�plogical.aclr�plogical.CyberCPLogFileWriterrkrj�plogical.mysqlUtilitiesr�websiteFunctions.modelsr�databases.modelsrr	r��loginSystem.modelsr
�plogical.randomPasswordr��plogical.httpProcr�
backup.modelsrr
r�r�rrrr�<module>s4[
�