diff --git a/bin/v_add_user b/bin/v_add_user index fe94bd29f..e2152687b 100755 --- a/bin/v_add_user +++ b/bin/v_add_user @@ -165,6 +165,14 @@ if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then fi # Filling user config +if [ "$user" != 'admin' ]; then + ip_avail=$($V_BIN/v_list_user_ips admin plain |grep -w shared|wc -l) + u_users=0 +else + ip_avail=0 + u_users=1 +fi + echo "FNAME='$fname' LNAME='$lname' PACKAGE='$package' @@ -179,8 +187,9 @@ SUSPENDED_DNS='0' SUSPENDED_MAIL='0' SUSPENDED_DB='0' SUSPENDED_CRON='0' +IP_AVAIL='$ip_avail' IP_OWNED='0' -U_USERS='0' +U_USERS='$u_users' U_DISK='0' U_DISK_DIRS='0' U_DISK_WEB='0' diff --git a/bin/v_change_user_package b/bin/v_change_user_package index bbbe18abb..1d5833688 100755 --- a/bin/v_change_user_package +++ b/bin/v_change_user_package @@ -90,6 +90,7 @@ SUSPENDED_DNS='$SUSPENDED_DNS' SUSPENDED_MAIL='$SUSPENDED_MAIL' SUSPENDED_DB='$SUSPENDED_DB' SUSPENDED_CRON='$SUSPENDED_CRON' +IP_AVAIL='$IP_AVAIL' IP_OWNED='$IP_OWNED' U_USERS='$U_USERS' U_DISK='$U_DISK' diff --git a/bin/v_list_user b/bin/v_list_user index de3a8907e..3455413b1 100755 --- a/bin/v_list_user +++ b/bin/v_list_user @@ -91,7 +91,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_ALIASES $WEB_TPL $DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES $CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $REPORTS $RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS - $SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_OWNED $U_USERS + $SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL $IP_OWNED $U_USERS $U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH $U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS $U_MAIL_DOMAINS $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS $DATE' diff --git a/bin/v_list_user_ips b/bin/v_list_user_ips index 205e1b24b..4d7c3d6d9 100755 --- a/bin/v_list_user_ips +++ b/bin/v_list_user_ips @@ -21,46 +21,55 @@ source $V_FUNC/shared.func json_list_user_ips() { # Print top bracket echo '{' - - owned_ips=$(grep -l "OWNER='$user'" $V_IPS/*) - shared_ips=$(grep -H -A5 "OWNER='admin'" $V_IPS/* |\ - grep "STATUS='shared'"|\ - cut -f 1 -d - ) - - ip_list="$owned_ips\n$shared_ips" fileds_count=$(echo "$fields" | wc -w) - - # Starting main loop - for IP in $(echo -e "$ip_list" | sort -u); do - IP=$(basename $IP) - ip_data=$(cat $V_IPS/$IP) - - # Assing key=value - eval $ip_data - - # Closing bracket if there already was output - if [ -n "$data" ]; then - echo -e ' },' - fi - i=1 - for field in $fields; do - eval value=$field - - if [ $i -eq 1 ]; then - # Printing parrent - (( ++i)) - echo -e "\t\"$value\": {" - else - # Printing child - if [ $i -lt $fileds_count ]; then - (( ++i)) - echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," - else - echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" - data=1 - fi + for IP in $(ls $V_IPS/); do + source $V_IPS/$IP + if [ "$OWNER" = "$user" ]; then + eval echo "$fields" + # Closing bracket if there already was output + if [ -n "$data" ]; then + echo -e ' },' fi - done + i=1 + for field in $fields; do + eval value=$field + if [ $i -eq 1 ]; then + # Printing parrent + (( ++i)) + echo -e "\t\"$value\": {" + else + # Printing child + if [ $i -lt $fileds_count ]; then + (( ++i)) + echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," + else + echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" + data=1 + fi + fi + done + else + if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then + i=1 + for field in $fields; do + eval value=$field + if [ $i -eq 1 ]; then + # Printing parrent + (( ++i)) + echo -e "\t\"$value\": {" + else + # Printing child + if [ $i -lt $fileds_count ]; then + (( ++i)) + echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"," + else + echo -e "\t\t\"${field//$/}\": \"${value//,/, }\"" + data=1 + fi + fi + done + fi + fi done # Closing bracket if there was output @@ -70,35 +79,20 @@ json_list_user_ips() { # Printing bottom bracket echo -e '}' + } # Shell function shell_list_user_ips() { - owned_ips=$(grep -l "OWNER='$user'" $V_IPS/*) - shared_ips=$(grep -H -A5 "OWNER='admin'" $V_IPS/* |\ - grep "STATUS='shared'"|\ - cut -f 1 -d - ) - - ip_list="$owned_ips\n$shared_ips" - if [ -z "$nohead" ]; then - # Print brief info - echo "${fields//$/}" - for a in $fields; do - echo -e "--------- \c" - done - echo - fi - - # Starting main loop - for IP in $(echo -e "$ip_list" | sort -u); do - IP=$(basename $IP) - ip_data=$(cat $V_IPS/$IP) - - # Assign key/value config - eval $ip_data - - # Print result line - eval echo "$fields" + for IP in $(ls $V_IPS/); do + source $V_IPS/$IP + if [ "$OWNER" = "$user" ]; then + eval echo "$fields" + else + if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then + eval echo "$fields" + fi + fi done } diff --git a/bin/v_list_users b/bin/v_list_users index 183297d0a..04cfe461f 100755 --- a/bin/v_list_users +++ b/bin/v_list_users @@ -87,10 +87,10 @@ fields="$fields \$DNS_DOMAINS \$DNS_RECORDS \$MAIL_DOMAINS \$MAIL_ACCOUNTS" fields="$fields \$DATABASES \$CRON_JOBS \$DISK_QUOTA \$BANDWIDTH \$NS \$SHELL" fields="$fields \$BACKUPS \$CONTACT \$REPORTS \$RKEY \$SUSPENDED" fields="$fields \$SUSPENDED_USERS \$SUSPENDED_WEB \$SUSPENDED_DNS" -fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_OWNED" -fields="$fields \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB \$U_DISK_MAIL" -fields="$fields \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL" -fields="$fields \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS " +fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_AVAIL" +fields="$fields \$IP_OWNED \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB" +fields="$fields \$U_DISK_MAIL \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS" +fields="$fields \$U_WEB_SSL \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS" fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS" fields="$fields \$DATE" diff --git a/bin/v_update_user_counters b/bin/v_update_user_counters index 443618fa4..d685d8e1f 100755 --- a/bin/v_update_user_counters +++ b/bin/v_update_user_counters @@ -55,6 +55,7 @@ for user in $user_list; do SUSPENDED_MAIL=0 SUSPENDED_DB=0 SUSPENDED_CRON=0 + IP_AVAIL=0 IP_OWNED=0 U_USERS=0 DISK=0 @@ -85,7 +86,6 @@ for user in $user_list; do if [ "$user" = 'admin' ]; then SUSPENDED_USERS=$(grep "SUSPENDED='yes'" $V_USERS/*/user.conf|wc -l) U_USERS=$(ls $V_USERS/|wc -l) - U_USERS=$((U_USERS - 1)) fi # Checking ip @@ -94,7 +94,14 @@ for user in $user_list; do if [ "$OWNER" = "$user" ]; then IP_OWNED=$((IP_OWNED + 1)) fi + if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then + IP_AVAIL=$((IP_AVAIL + IP_OWNED)) + IP_AVAIL=$((IP_AVAIL + 1)) + fi done + if [ "$user" = 'admin' ]; then + IP_AVAIL=$(ls $V_IPS | wc -l) + fi # Checking web system for domain_str in $(cat $V_USERS/$user/web.conf) ;do @@ -159,6 +166,7 @@ for user in $user_list; do update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL" update_user_value "$user" '$SUSPENDED_DB' "$SUSPENDED_DB" update_user_value "$user" '$SUSPENDED_CRON' "$SUSPENDED_CRON" + update_user_value "$user" '$IP_AVAIL' "$IP_AVAIL" update_user_value "$user" '$IP_OWNED' "$IP_OWNED" update_user_value "$user" '$U_USERS' "$U_USERS" update_user_value "$user" '$U_DISK' "$U_DISK"