fj) 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 wdedefdZdedededee fdZ dededdfdZ! d dee" de#dedefdZ$ d!dede#de#dede#dee" deddfdZ%dededdfdZ&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_contextcagefsctl_get_prefix )is_excluded_path$get_domain_php_version_from_selectorINI_USER_LOCATIONS)(is_website_isolation_allowed_server_wideis_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) 355 u8>>>>r website_idphp_ver_dirreturnc 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 ~tZ&ZZ4ZZzZZKZZZZr c t | | sdS i }d}d}t D ][}t |d D ]A}t | r |d | }|j | k r1|j }|j }n"# t d| Y _xY wt j |d }t j | s t | 5 } t j | } | || <