Add plesk_list_users() function for Plesk user discovery
Issue: list_plesk_users() in user-manager.sh was trying to query MySQL but the query was failing, resulting in 0 users detected on Plesk. Fix: 1. Added plesk_list_users() to plesk-helpers.sh that uses: - Plesk CLI: 'plesk bin client --list' (primary) - Fallback: Scan /var/www/vhosts directories 2. Updated list_plesk_users() in user-manager.sh to: - First try plesk_list_users() if available - Then try MySQL query - Last resort: directory scan This should now detect Plesk users from either Plesk API or filesystem fallback. Testing: Will verify on Plesk server
This commit is contained in:
@@ -46,6 +46,24 @@ plesk_list_domains() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# USER DISCOVERY
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
# Get list of all Plesk users (clients)
|
||||||
|
# Returns: One username per line
|
||||||
|
plesk_list_users() {
|
||||||
|
if plesk_cli_available; then
|
||||||
|
# Try to get client logins from Plesk
|
||||||
|
plesk_exec bin client --list 2>/dev/null | tail -n +3 | awk '{print $1}' | grep -v "^$"
|
||||||
|
else
|
||||||
|
# Fallback: Get unique owners from vhosts directories
|
||||||
|
find /var/www/vhosts -maxdepth 1 -type d -printf "%f\n" 2>/dev/null | \
|
||||||
|
grep -v "^system$\|^chroot$\|^\.skel$\|^default$\|^fs$\|^fs-passwd$" | \
|
||||||
|
grep -v "^\." || true
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Get domain info
|
# Get domain info
|
||||||
# Usage: plesk_domain_info DOMAIN
|
# Usage: plesk_domain_info DOMAIN
|
||||||
plesk_domain_info() {
|
plesk_domain_info() {
|
||||||
|
|||||||
+9
-3
@@ -52,11 +52,17 @@ list_cpanel_users() {
|
|||||||
|
|
||||||
# Plesk user listing
|
# Plesk user listing
|
||||||
list_plesk_users() {
|
list_plesk_users() {
|
||||||
if command_exists mysql && [ -f /etc/psa/.psa.shadow ]; then
|
# Use plesk_list_users() if available (from plesk-helpers.sh)
|
||||||
|
if type plesk_list_users >/dev/null 2>&1; then
|
||||||
|
plesk_list_users
|
||||||
|
elif command_exists mysql && [ -f /etc/psa/.psa.shadow ]; then
|
||||||
|
# Fallback: Try MySQL query
|
||||||
mysql -Ns psa -e "SELECT login FROM sys_users WHERE type='user'" 2>/dev/null
|
mysql -Ns psa -e "SELECT login FROM sys_users WHERE type='user'" 2>/dev/null
|
||||||
else
|
else
|
||||||
# Fallback: list directories
|
# Last resort: list directories
|
||||||
find /var/www/vhosts -maxdepth 1 -type d -printf "%f\n" 2>/dev/null | grep -v "^system$\|^default$\|^chroot$"
|
find /var/www/vhosts -maxdepth 1 -type d -printf "%f\n" 2>/dev/null | \
|
||||||
|
grep -v "^system$\|^default$\|^chroot$\|^\.skel$\|^fs$\|^fs-passwd$" | \
|
||||||
|
grep -v "^\."
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user