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/plogical/__pycache__/vhost.cpython-310.pyc
o

��hU��@s4ddlZddlZddlZddlZddlmZej�d�ej�	dd�ze�
�WnYddlZddlm
Z
ddlZddlZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZzddl m!Z!m"Z"m#Z#m$Z$ddl%m&Z&WnYddl'Z'ddl(Z(Gdd�d�Z)dS)�N)�
ACLManager�/usr/local/CyberCP�DJANGO_SETTINGS_MODULEzCyberCP.settings)�installUtilities)�CyberCPLogFileWriter)�mysqlUtilities)�DNS)�randint)�ProcessUtilities)�
PHPManager)�
vhostConfs)�ApacheVhost)�Websites�ChildDomains�aliasDomains�DockerSites)�	Databasesc@s.eZdZdZdZdZedd��Zedd��Zedd	��Z	ed
d��Z
edd
��Zedd��Zedd��Z
edd��Zedd��Zedd��Zedd��Zed3dd��Zedd��Zedd ��Zed!d"��Zed#d$��Zed%d&��Zed'd(��Zed)d*��Zed+d,��Zed-d.��Zed/d0��Zed1d2��ZdS)4�vhostz/usr/local/lswsrz&/usr/local/lsws/conf/dvhost_redis.confc
Cs�z<ttjd�}tj�d�rd|�d|��}nd|�d|��}t�|�d|��}t�|�d|�d	|��}t�|�WdStyZ}ztj	�
t|��d
��WYd}~dSd}~ww)N�wz/etc/lsb-releasez*/usr/sbin/adduser --no-create-home --home z --disabled-login --gecos "" z/usr/sbin/adduser z -M -d z/usr/sbin/groupadd z/usr/sbin/usermod -a -G � z [addingUsers])�open�os�devnull�path�existsr
�executioner�
BaseException�loggingr�writeToFile�str)�virtualHostUserr�FNULL�command�msg�r$�$/usr/local/CyberCP/plogical/vhost.py�addUser,s


$��z
vhost.addUserc
Cs��z�ttjd�}zd}t�|�}tj||tjd�WnYz3t�|�d|�d|�d|��}t�|�}tj||tjd�d|��}t�|�}tj||tjd�Wnt	yn}	zt
j�t
|	�d�WYd}	~	nd}	~	wwzFt�|�t��tjks�t��tjkr�d	}
nd
}
d|�d|
�d|��}t�|�}tj||tjd�d|��}t�|�}tj||tjd�Wnt	y�}	zt
j�t
|	�d�WYd}	~	nd}	~	wwzPt�|�t��tjks�t��tjkr�d	}
nd
}
d
d|
|f}t�|�}tj||tjd�t��tjk�rd|��}nd|��}t�|�}tj||tjd�Wnt	�y?}	zt
j�t
|	�d�WYd}	~	nd}	~	wwztj�|��sMt�|�Wnt	�yk}	zt
j�t
|	�d�WYd}	~	nd}	~	wwz,t|d�}d|}t�|�}tj||tjd�d|��}t�|�}tj||tjd�Wnt�y�}	zt
j�t
|	�d�WYd}	~	nd}	~	wwddgWSt�y�}	zt
j�t
|	�d�dt
|	�gWYd}	~	Sd}	~	ww)Nrzchmod 711 /home��stdout�stderr�chown �:rz
chmod 711 zI [27 Not able create to directories for virtual host [createDirectories]]�nobody�nogroupz
chmod 750 zB [33 Not able to directories for virtual host [createDirectories]]zchown %s:%s %s�rootz
chmod -R 750 zB [39 Not able to directories for virtual host [createDirectories]]zB [45 Not able to directories for virtual host [createDirectories]]�w+zchown lsadm:lsadm z
chmod 600 z [createDirectories]]��Nonez [createDirectories])rrr�shlex�split�
subprocess�call�STDOUT�makedirs�OSErrorrrrrr
�decideDistro�centos�cent8�decideServer�OLSrr�IOErrorr)rr �pathHTML�pathLogs�confPath�completePathToConfigFiler!r"�cmdr#�	groupName�filer$r$r%�createDirectoriesAs�





���




���




���
�
���



 ��
��zvhost.createDirectoriesc
Cs�zFttjd�}t�dd|�d��d|�d|�d|�d�}t�|�}tj||tj	d�t
j�d	�}d
|��}t�|�}tj||tj	d�WdStyc}zt
j�t|�d�WYd}~dSd}~ww)Nr�/usr/local/CyberCP/index.html�/home/z/public_html/index.htmlr*r+z /home/r'�/conf/vhosts�chown -R lsadm:lsadm z [finalizeVhostCreation])rrr�shutil�copyr2r3r4r5r6r�Server_rootrrrrr)�virtualHostNamer r!r"rC�	vhostPathr#r$r$r%�finalizeVhostCreation�s


"��zvhost.finalizeVhostCreationcCs�tj�d�s
d}t�|�d|}d|d}d|d}tjd|}	|	d}
t�||�t�|||||	|
�}|ddkrDd|d	gSt�	|
|||||�d	krTd	d
gSddgS)Nz7/usr/local/lsws/Example/html/.well-known/acme-challengez@mkdir -p /usr/local/lsws/Example/html/.well-known/acme-challengerHz/public_html�/logs�
/conf/vhosts/�/vhost.confrr0r1zK[61 Not able to create per host virtual configurations [perHostVirtualConf])
rrrr
�normalExecutionerrrMr&rF�perHostVirtualConf)rN�administratorEmailr �
phpVersion�openBasedirr"rr?r@rArB�resultr$r$r%�createDirectoryForVirtualHost�s
z#vhost.createDirectoryForVirtualHostc
Cs�t��tjkrmzHt|d�}t�|�}tj}|�d|�}|�d|�}|�d|�}|�d|�}|�d|�}|dkr>|�dd�}n|�dd�}|�	|�|�
�WdStyl}	ztj
�t|	�d	�WYd}	~	d
Sd}	~	wwz�tj�tj�s�t|d�}t�|�}tj}|�d|�}|�d|�}|�d
|�}|�d|�}|�	|�|�
�WdStj}|�d|�}|�d|�}|�d
|�}|�d|�d��}|�dtt�|�j��}|�dtt�|�j��}d|}
t�|
�tj}|�dd|�}|�d|�}|�d|�}|�d
|�}|�d|�d��}|�dtt�|�j��}|�dtt�|�j��}d|}
t�|
�WdSt�yL}	ztj
�t|	�d	�WYd}	~	d
Sd}	~	ww)Nr/�
{adminEmails}z{virtualHostUser}�{php}r0�{open_basedir}�,php_admin_value open_basedir "/tmp:$VH_ROOT"�z: [IO Error with per host config file [perHostVirtualConf]]r�{virtualHostName}�{administratorEmail}�
{externalApp}�PHP �{uid}�{gid}�redis-cli set %s�www.%sz{master}) r
r<r=rr�getPHPStringr�
olsMasterConf�replace�write�closerrrrrrrrr�	redisConf�lswsMasterConf�lswsRediConfMaster�lstrip�pwd�getpwnam�pw_uid�grp�getgrnam�gr_gidr�lswsRediConfMasterWWW)�vhFilerVr rWrNrX�confFile�php�currentConfr#r"r$r$r%rU�s|



���


!�


���zvhost.perHostVirtualConfc
Cs�zCtd���}tdd�}d|d|d}d}|D]&}|dkr;|�d�dkr;|�d	�dkr;|�|�|�|�d
}q|�|�qWdSty^}ztj�t|��WYd}~d
Sd}~ww)N�&/usr/local/lsws/conf/httpd_config.confr�  map                     r�
r0�listener����Defaultr)	r�	readlines�find�
writelinesrrrrr)rN�data�writeDataToFile�map�
mapchecker�itemsr#r$r$r%�createNONSSLMapEntry<s"
$

��zvhost.createNONSSLMapEntryc
Cst��tjkrPz(t�|�dkrddgWStdd�}tj}|�d|�}|�	|�|�
�ddgWStyO}ztj
�t|�d�ddgWYd}~Sd}~wwztd	d�}d
|d}|�|�|�
�|�
�ddgWSty�}ztj
�t|�d�ddgWYd}~Sd}~ww)Nr�FFailed to create NON SSL Map Entry [createConfigInMainVirtualHostFile]r|�ar`r0r1zH223 [IO Error with main config file [createConfigInMainVirtualHostFile]]�/usr/local/lsws/conf/httpd.conf�$Include /usr/local/lsws/conf/vhosts/�/vhost.conf
)r
r<r=rr�rr�olsMasterMainConfrjrkrlrrrrrr�)rNr�r{r#�
configFiler$r$r%�!createConfigInMainVirtualHostFileSs:



��



���z'vhost.createConfigInMainVirtualHostFilec
Cs�t��tjk�r+�zttj��tj���}t�	||�tjj
|d�}|j}tjj
|d�}|j��}|D]$}tj��tj��}t�	|j|�tj�d|j�rXt�d|j�q4t��dkr�tj�d|�r�z"tjj
|d�}||jd�}ddlm}	|	d|�}
|
��|��Wnt�d|�Y|D]
}t�|j |j!�q�|��t"�#|�tj�tj$�s�t%j%�&�d	|}t'�(t)�*|��t�+�tj,ks�t�+�tj-kr�d
|}nd|}t�.|�d|}t�.|�d
|}tj�|�r�t�|�tj�d|��r
t�d|�WdSWdSt/�y*}
zt0j1�2t|
�d�WYd}
~
dSd}
~
wwz�ttj��tj���}t�	||�tjj
|d�}|j}d|j}t�3|�tjj
|d�}|j��}|D]}tj��tj��}t�	|j|��q`t��dk�r�|D]}t�|j |j!��q~|��t"�#|�t%j%�&�d	|}t'�(t)�*|��t�+�tj,k�s�t�+�tj-k�r�d
|}nd|}t�.|�d|}t�.|�WdSt/�y�}
zt0j1�2t|
�d�WYd}
~
dSd}
~
ww)N��domain)�websitez/root/.acme.sh/%srz/home/docker/%s)�
admin__domain)r��name)�Docker_Siteszrm -rf /home/vmail/zuserdel -r -f %sz
deluser %szgroupdel %sz/home/cyberpanel/git/%s�N [Not able to remove virtual host configuration from main configuration file.]r0z /usr/sbin/cagefsctl --disable %s)4r
r<r=rr�objects�countrr�deleteCoreConf�get�externalAppr�filter�childdomains_set�allr�rrrrK�rmtreer�FindIfChildr�SiteName�plogical.DockerSitesr��DeleteDockerApp�deleter�deleteDatabase�dbName�dbUserr�
deleteDNSZonermr�reStartLiteSpeedr4r5r2r3r9r:r;rrrrrrT)rN�
numberOfSites�
delWebsiter��	databases�childDomainsr��
dockerSite�passdatar��dar"�gitPathr#r$r$r%�deleteVirtualHostConfigurationsus�
��






����




 

�
���z%vhost.deleteVirtualHostConfigurationsc
Cs�t��tjk�rz�d|}tj�|�rt�|�tj	d|}tj�|�r*t�|�t
d���}t
dd�}d}d}|D]�}|dkr�|�d|�dkrT|�d|�dkrTq;|�d|�dkrm|�d	�dksk|�d
�dkrmd}|�d�dkr}|�d
�dkr}d}|dkr�|dkr�|�
|�|�d�dkr�|dks�|dkr�d}d}q;|�d|�dkr�|�d|�dkr�q;|�d|�dkr�|�d	�dks�|�d
�dkr�d}|dkr�|�
|�|�d�dkr�|dkr�d}q;t�|�WdSt�y}	ztj�t|	�d�WYd}	~	dSd}	~	wwd|}zt�|�Wnt�y/}	ztj�t|	�d�WYd}	~	nd}	~	wwtj�tj��s�ztj	d|}t�|�Wnt�yc}	ztj�t|	�d�WYd}	~	nd}	~	wwz+t
d���}t
dd�}|D]}|�d|d�dk�r��qr|�
|��qr|��WdSt�y�}	ztj�t|	�d�WYd}	~	dSd}	~	wwd|}
t�|
�d|}
t�|
�dS)NrHrRr|rr0rr�r}�virtualHost�virtualhostrr�SSL�}r�zD [Not able to remove virtual host directory from /home continuing..]zF [Not able to remove virtual host configuration directory from /conf ]r��/zredis-cli delete "vhost:%s"zredis-cli delete "vhost:www.%s")r
r<r=rrrrKr�rrMrr�r�r�r
�DeleteApacheVhostrrrrrrmrlr)rNr��virtualHostPathrAr�r��check�sslCheckr�r#r"r$r$r%r�s�


$.
�$.
��
���
���
���

�
���
zvhost.deleteCoreConfcCstj�d|�r
dSdS)NrHr0r)rrr)rNr$r$r%�checkIfVirtualHostExiststszvhost.checkIfVirtualHostExistsc
Cs�ddlm}|�d�d}t|�ztjj|d�}|j}Wntjj|d�}|j	j}Y|}t
j�d|�d|���ddl
m}|�d|�}d	|�d�d
}	t��tjk�r+z�t�||�dkr�t|d���}
t�|�}tj�dt|�d
�s�tdd�ddgWSt|d�}dt|�d}
t
j�d|
���|
D]}|�d�dkr�|�d�dkr�|�|
�q�|�|�q�|��d||	f}t� |�t!j!�"�z
d||	f}t� |�WnYnt
j�d�t�|�}t�#|�}d|��}t� |�td�WdSt$�y*}zt
j�t|�d�tdt|��dt|�dgWYd}~Sd}~wwz�tj�t%j&��s�t|d���}
t�|�}tj�dt|�d
��sWtdd�ddgWSt|d�}dt|�d}|
D]}|�d�dk�rw|�|��qf|�|��qf|��t|	d�}|��t!j!�"�zt�'|	�Wn3Yn.d |�d�d
}t�(|�}ddl)}|�*d!d"|�+d#�|�}d$|�d�d
|f}t�,|�td�WdSt$�y�}zt
j�t|�d%�tdt|��dt|�d%gWYd}~Sd}~ww)&Nr)�Pathr��r�z5PHP version before making sure its available or not: z
 and vhFile: )�phpUtilitiesz/home/%s/.lsphp_restart.txt����rz/usr/local/lsws/lsphpz
/bin/lsphpz5This PHP version is not available on your CyberPanel.zB[This PHP version is not available on your CyberPanel. [changePHP]rz/  path                    /usr/local/lsws/lsphpz/bin/lsphp
zPHP String to be written r�rzsudo -u %s touch %szsudo -u %s rm -f %szapache vhost 1zsystemctl restart z1,None)r0r1z0 [IO Error with per host config file [changePHP]z&    AddHandler application/x-httpd-phpz .php
zAddHandler application/x-httpdzredis-cli get "vhost:%s"z"phpVersion": .*,z"phpVersion": %s,rczredis-cli set vhost:%s '%s'�1 [IO Error with per host config file [changePHP]])-�pathlibr�r3�printrr�r�r�r�masterrrr�plogical.phpUtilitiesr��<FindIfSaidPHPIsAvaiableOtherwiseMaketheNextOneAvailableToUser
r<r=r
�	changePHPrr�rrhrrrrr�r�rlrTrr��DecideFPMServiceNamerrrm�remove�outputExecutioner�re�subrpr)rxrWr�r�r�r��childr r��phpDetachUpdatePathr�rzr�rr�r"�
phpServicer#�finalStringr�
configDatar�r$r$r%r�zs�












���








���zvhost.changePHPNc
CsBzWdSty }ztj�t|�d�WYd}~dSd}~ww)Nr�rr0)rrrrr)rN�fileNamer#r$r$r%�addRewriteRules�s���zvhost.addRewriteRulesc
Csbz|D]
}|�d�dkrWdSqWdSty0}ztj�t|�d�WYd}~dSd}~ww)Nz	.htaccessr�r0rz= [IO Error with per host config file [checkIfRewriteEnabled]])r�rrrrr)r�r�r#r$r$r%�checkIfRewriteEnabled�s�
���zvhost.checkIfRewriteEnabledc	
Cs�z�d|d|d}tj�d|d�std�WdSd|}tj�|�s-td�WdStj�|�r�z/t|���}t|d�d	��}tt|�d
�}|dkrQd}td�t|�}t|�t|�}Wntd�YWdS|d
krtd}tt	|�dt	|��t	|�t	|�fWStd�WdSt
y�}ztj�
t	|�d�td�WYd}~dSd}~wty�}ztj�
t	|�d�td�WYd}~dSd}~ww)NrHz/logs/z.access_logrQz0,0)rrz/home/cyberpanel/%s.bwmetarr~g0Ai?B�dgY@�,z [findDomainBW])rrrr�rr��int�strip�floatrr8rrr�
ValueError)	�
domainName�totalAllowedr�bwmetar��currentUsed�inMB�
percentager#r$r$r%�findDomainBWsL���zvhost.findDomainBWc
C�Zzd|}t�|�}t�|�}WdSty,}ztj�t|��WYd}~dSd}~ww)Nz%sudo chown -R  cyberpanel:cyberpanel �	r2r3r4r5rrrrr�rr"rC�resr#r$r$r%�permissionControl<s
��zvhost.permissionControlc
Cr�)Nzsudo chown -R  root:root r�r�r$r$r%�leaveControlEs
��zvhost.leaveControlc
Cs<z
tjj|d�}WdSty}zWYd}~dSd}~ww)N)�aliasDomainr0r)rr�r�r)r��aliasr#r$r$r%�checkIfAliasExistsQs��zvhost.checkIfAliasExistsc
Cshz|D]}|�d��d�|krWdSqWdSty3}ztj�t|�d�WYd}~dSd}~ww)Nr�r~r0rz  [checkIfSSLAliasExists])r�rrrrr)r�r�r�r#r$r$r%�checkIfSSLAliasExistsYs���zvhost.checkIfSSLAliasExistsc
Csznt|d���}t|d�}d}|D]Q}|�d�dkrd}|�|�dkr]|�d�dkr]|dkr]dd	�|�d
�D�}|d|kr\t�||�dkrW|�|�d�d|d�d}q|�|�q|�|�q|��t	j	�
�WdSty�}ztj
�t|�d
�WYd}~dSd}~ww)Nr�rrzlistener SSLr�r0r�cSsg|]}|r|�qSr$r$)�.0�_fr$r$r%�
<listcomp>rsz+vhost.createAliasSSLMap.<locals>.<listcomp>rr~z, z  [createAliasSSLMap])rr�r�r3rr�r��rstriprlrr�rrrrr)rA�masterDomainr�r�rr�r�r#r$r$r%�createAliasSSLMapes,
$
�"��zvhost.createAliasSSLMapc	
Cszbt��ttdd��}dd|f}ttjd�}t�d|�d|d|d	|}t	�
|�}tj||tj
d
�d|||f}t�|�t�|�tjd}d
|}t	�
|�}tj||tj
d
�WdSty}ztj�t|�d�WYd}~dSd}~ww)N���'z%s/%sz/usr/local/CyberCP/tmprrGr*r+rr'zsudo -u %s cp %s %s/index.htmlrIrJz [finalizeDomainCreation])r�CreateSecureDirrr	rrrrKrLr2r3r4r5r6r
rTr�rrMrrrr)	r r�RanddomFileName�FullPathr!r"rCrOr#r$r$r%�finalizeDomainCreation�s(




"��zvhost.finalizeDomainCreationc
Cs�ttjd�}tjd|}|d}	zBd||f}
t�|
�t��tjks+t��tj	kr.d}nd}d|||||f}
t�|
�d||f}
t
�|
�}tj
||tjd	�Wntyo}
ztj�t|
�d
�WYd}
~
nd}
~
wwzt�|�Wnty�}
ztj�t|
�d�WYd}
~
nd}
~
wwzt|	d�}Wnty�}
ztj�t|
�d
�WYd}
~
nd}
~
wwt�||||	||||�dkr�ddgS	ddgS)NrrRrSzsudo -u %s mkdir %sr,r-zsudo -g %s -u %s chown %s:%s %szsudo -u %s chmod 750 %sr'zP329 [Not able to create directories for virtual host [createDirectoryForDomain]]zP335 [Not able to create directories for virtual host [createDirectoryForDomain]]r/z [createDirectoryForDomain]]r0r1)rrrrrMr
rTr9r:r;r2r3r4r5r6r8rrrrr7r>�perHostDomainConf)r�r�rWrrVr rXr!rArBr"rDrCr#rEr$r$r%�createDirectoryForDomain�sT



���
��� ����zvhost.createDirectoryForDomainc
Cst��tjkr�zct�|�}|ttdd��}	tj}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|	�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|d	krT|
�	d
d�}
n|
�	d
d�}
t
|d
�}|�|
�|��Wd	St
y�}ztj�t|�d�WYd}~dSd}~wwz�tj�tj�s�t
|d
�}t�|�}tj}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|�|
�|��Wd	Stj}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�d��}
|
�	dtt�|�j��}
|
�	dtt�|�j��}
d|
}
t�|
�tj }
|
�	dd|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�}
|
�	d|�d��}
|
�	dtt�|�j��}
|
�	dtt�|�j��}
d|
}
t�|
�Wd	St
�y�}ztj�t|�d�WYd}~dSd}~ww)Nr�r�z{path}�{masterDomain}r[rbz{externalAppMaster}r\r0r]r^r_r/z9 [IO Error with per host config file [perHostDomainConf]]rr`rarcrdrerfrg)!r
r<r=rrhrr	r�olsChildConfrjrrkrlrrrrrrrrrm�
lswsChildConf�lswsRediConfChildrprqrrrsrtrurvr�lswsRediConfChildWWW)rr�r�rxrVrWr rXrzr�r{ryr#r"r$r$r%r��s�



�
���



(�
�
���zvhost.perHostDomainConfc
Cs t��tjkrVz.t�|�dkrddgWStdd�}tj}|�d|�}|�d|�}|�	|�|�
�ddgWStyU}ztj
�t|�d	�dd	gWYd}~Sd}~wwztd
d�}d|d}|�|�|�
�ddgWSty�}ztj
�t|�d	�dd	gWYd}~Sd}~ww)
Nrr�r|r�r`r�r0r1zG223 [IO Error with main config file [createConfigInMainDomainHostFile]]r�r�r�)r
r<r=rr�rr�olsChildMainConfrjrkrlrrrrrr�)r�r�r�r{r#r�r$r$r%� createConfigInMainDomainHostFile9s>




���



���z&vhost.createConfigInMainDomainHostFile)N)�__name__�
__module__�__qualname__rM�
cyberPanelrm�staticmethodr&rFrPrZrUr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr$r$r$r%r&sf

i

!
Y

!
"
\

z	

/





 
6
\r)*r�os.path�sys�django�plogical.aclrr�append�environ�
setdefault�setuprK�plogicalrr4r2rr�plogical.mysqlUtilitiesr�plogical.dnsUtilitiesr�randomr	�plogical.processUtilitiesr
�managePHP.phpManagerr�plogical.vhostConfsr�ApachController.ApacheVhostsr
�websiteFunctions.modelsrrrr�databases.modelsrrqrtrr$r$r$r%�<module>s>