Fix 9 MEDIUM hardcoded /var/cpanel paths - ALL MEDIUM ISSUES RESOLVED!

FIXES:
Changed hardcoded /var/cpanel paths to use environment variables with fallbacks:

reference-db.sh:
- Line 255: /var/cpanel/userdata → ${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}
- Line 265: /var/cpanel/userdata → ${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}

php-detector.sh:
- Line 69: /var/cpanel/userdata → ${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}

user-manager.sh:
- Line 44-45: /var/cpanel/users → ${SYS_CPANEL_USERS_DIR:-/var/cpanel/users}
- Line 111: /var/cpanel/users → ${SYS_CPANEL_USERS_DIR:-/var/cpanel/users}

diagnostic-report.sh:
- Line 68: /var/cpanel/users → ${SYS_CPANEL_USERS_DIR:-/var/cpanel/users}

wordpress-cron-manager.sh:
- Line 229-230: /var/cpanel/userdata → ${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}

IMPACT:
- Paths now configurable via environment variables
- Maintains backward compatibility with default paths
- Better multi-panel support flexibility
- More testable code (can override paths in tests)

QA STATUS:
🎉 ALL MEDIUM ISSUES RESOLVED! 🎉
- CRITICAL: 0 ✓
- HIGH: 0 ✓
- MEDIUM: 0 ✓
- LOW: 11 (remaining)
This commit is contained in:
cschantz
2025-12-03 20:19:43 -05:00
parent 6a9f2cb473
commit 3b23310d7d
5 changed files with 12 additions and 9 deletions
+1 -1
View File
@@ -66,7 +66,7 @@ detect_php_version_for_domain() {
case "$SYS_CONTROL_PANEL" in
cpanel)
# Check userdata for PHP version
local userdata_file="/var/cpanel/userdata/$username/$domain"
local userdata_file="${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}/$username/$domain"
if [ -f "$userdata_file" ]; then
local php_ver=$(grep "phpversion:" "$userdata_file" | awk '{print $2}' | tr -d "'\"")
echo "$php_ver"
+2 -2
View File
@@ -252,7 +252,7 @@ build_domains_section() {
# Count total domains for progress
local total_domains=0
for user in "${users[@]}"; do
local userdata_dir="/var/cpanel/userdata/${user}"
local userdata_dir="${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}/${user}"
if [ -d "$userdata_dir" ]; then
total_domains=$((total_domains + $(find "$userdata_dir" -type f ! -name "*.cache" ! -name "*.yaml" ! -name "*.json" ! -name "main*" ! -name "cache" ! -name "*_SSL" 2>/dev/null | wc -l)))
fi
@@ -262,7 +262,7 @@ build_domains_section() {
# Get detailed domain information from cPanel userdata (if available)
for user in "${users[@]}"; do
local userdata_dir="/var/cpanel/userdata/${user}"
local userdata_dir="${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}/${user}"
if [ -d "$userdata_dir" ]; then
# Parse each domain configuration file in userdata
+4 -3
View File
@@ -41,8 +41,9 @@ list_all_users() {
# cPanel user listing
list_cpanel_users() {
if [ -d "/var/cpanel/users" ]; then
ls /var/cpanel/users/ 2>/dev/null || true
local cpanel_users_dir="${SYS_CPANEL_USERS_DIR:-/var/cpanel/users}"
if [ -d "$cpanel_users_dir" ]; then
ls "$cpanel_users_dir" 2>/dev/null || true
else
# Fallback: parse /etc/trueuserdomains
awk -F: '{print $2}' /etc/trueuserdomains 2>/dev/null | sort -u || true
@@ -108,7 +109,7 @@ get_user_info() {
# cPanel user info
get_cpanel_user_info() {
local username="$1"
local user_file="/var/cpanel/users/${username}"
local user_file="${SYS_CPANEL_USERS_DIR:-/var/cpanel/users}/${username}"
if [ ! -f "$user_file" ]; then
echo "USER_EXISTS=no"
@@ -226,8 +226,9 @@ case "$choice" in
case "$SYS_CONTROL_PANEL" in
cpanel)
user=$(extract_user_from_path "$site_path")
if [ -f "/var/cpanel/userdata/$user/main" ]; then
domain=$(grep -m1 "^servername:" "/var/cpanel/userdata/$user/main" 2>/dev/null | awk '{print $2}')
local userdata_dir="${SYS_CPANEL_USERDATA_DIR:-/var/cpanel/userdata}"
if [ -f "$userdata_dir/$user/main" ]; then
domain=$(grep -m1 "^servername:" "$userdata_dir/$user/main" 2>/dev/null | awk '{print $2}')
fi
;;
interworx)
+2 -1
View File
@@ -65,7 +65,8 @@ echo ""
echo "--- USER/DOMAIN FILES ---"
echo "cPanel user files:"
echo " /var/cpanel/users/: $(ls /var/cpanel/users/ 2>/dev/null | wc -l) files"
local cpanel_users_dir="${SYS_CPANEL_USERS_DIR:-/var/cpanel/users}"
echo " $cpanel_users_dir: $(ls "$cpanel_users_dir" 2>/dev/null | wc -l) files"
echo " /etc/trueuserdomains: $([ -f /etc/trueuserdomains ] && wc -l < /etc/trueuserdomains || echo "NOT FOUND") lines"
echo " /etc/userdatadomains: $([ -f /etc/userdatadomains ] && wc -l < /etc/userdatadomains || echo "NOT FOUND") lines"
echo ""