PATH:
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
xray
/
reconfiguration
/
__pycache__
� �%�i�) � � � d Z ddlZddlZddlZddlmZ ddlmZ ddlm Z ddl mZ ddl mZmZ dd lmZmZmZ ej e� � Z dd lmZmZmZ ddlmZ n# e$ r d� Zd � Zd� ZdZY nw xY wdedefd�Zdedededee fd�Z dededdfd�Z! d dee" de#dedefd�Z$ d!dede#de#dede#dee" deddfd�Z%dededdfd�Z&dS )"z� Website isolation support for X-Ray INI files. This module provides functions to manage xray.ini files in per-website directories when CageFS website isolation is enabled. � N)�iglob)�Optional)� disable_quota)�docroot)�user_context�cagefsctl_get_prefix� )�is_excluded_path�$get_domain_php_version_from_selector�INI_USER_LOCATIONS)�(is_website_isolation_allowed_server_wide�is_isolation_enabled�#get_websites_with_enabled_isolation)�get_website_idc � � dS �NF� r � �]/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/reconfiguration/website_isolation.pyr r + � � ��ur c � � dS r r ��users r r r / r r c � � g S �Nr r s r r r 3 s � �� r r �domainc �D � t � � sdS |t | � � v S r )r r )r r s r �is_per_website_php_selectorr : s) � �3�5�5� ��u��8��>�>�>�>r � website_id�php_ver_dir�returnc �F � t | � � }|�dS d|� d| � d|� d|� d� S )a Build path to xray.ini in per-website directory. :param user: Username :param website_id: Website ID hash :param php_ver_dir: PHP version directory (e.g., 'alt-php80') :return: Full path to xray.ini or None if cagefs prefix not available Nz/var/cagefs/�/z/etc/cl.php.d/z /xray.ini)r )r r r �prefixs r �_get_per_website_ini_pathr% @ sD � � "�$� '� '�F� �~��t�Z�&�Z�Z�4�Z�Z�z�Z�Z�K�Z�Z�Z�Zr c � � t | |� � sdS i }d}d}t D �][}t |d � � D �]A}t |� � r� |d |� � }|j | k r�1|j }|j }n"# t � d|� � Y �_xY wt j � |d� � }t j � |� � s�� t |� � 5 } t j � |� � } | � � � || <