D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
ssa
/
Filename :
clos_ssa_ini.py
back
Copy
# -*- coding: utf-8 -*- # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT """ Shared constants and helpers for clos_ssa.ini file management. """ import pwd import re INI_FILE_NAME = 'clos_ssa.ini' # Base user locations for clos_ssa.ini files INI_USER_LOCATIONS_BASE = ( dict(path='/var/cagefs/*/*/etc/cl.php.d/alt-php[0-9][0-9]', user=lambda path: pwd.getpwnam(path.split('/')[4])), ) # Per-website locations used when website isolation is enabled INI_USER_LOCATIONS_WEBSITE_ISOLATION = ( dict(path='/var/cagefs/*/*/etc/cl.php.d/*/alt-php[0-9][0-9]', user=lambda path: pwd.getpwnam(path.split('/')[4])), ) # Directories to exclude EXCLUDE_DIR_PATHS = ( 'php44', 'php51', 'php52', 'php53', r'php\d+-imunify', 'php-internal' ) def is_excluded_path(dir_path: str) -> bool: """Check if given path is in exclude list.""" for pattern in EXCLUDE_DIR_PATHS: if re.search(pattern, dir_path): return True return False def extract_php_version(path: str) -> str: """Extract PHP version number from path (e.g., 'alt-php80' -> '80').""" match = re.search(r'php(\d{2})', path) return match.group(1) if match else None