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:
cschantz
2025-12-24 16:29:27 -05:00
parent c56093fdcb
commit 83ad5a0b9c
2 changed files with 27 additions and 3 deletions
+9 -3
View File
@@ -52,11 +52,17 @@ list_cpanel_users() {
# Plesk user listing
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
else
# Fallback: list directories
find /var/www/vhosts -maxdepth 1 -type d -printf "%f\n" 2>/dev/null | grep -v "^system$\|^default$\|^chroot$"
# Last resort: list directories
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
}