Skip to content

Commit 0bab5ef

Browse files
committed
Added IP_AVAIL key. Issue hestiacp#50
1 parent 69006da commit 0bab5ef

File tree

6 files changed

+79
-67
lines changed

6 files changed

+79
-67
lines changed

bin/v_add_user

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ]; then
165165
fi
166166

167167
# Filling user config
168+
if [ "$user" != 'admin' ]; then
169+
ip_avail=$($V_BIN/v_list_user_ips admin plain |grep -w shared|wc -l)
170+
u_users=0
171+
else
172+
ip_avail=0
173+
u_users=1
174+
fi
175+
168176
echo "FNAME='$fname'
169177
LNAME='$lname'
170178
PACKAGE='$package'
@@ -179,8 +187,9 @@ SUSPENDED_DNS='0'
179187
SUSPENDED_MAIL='0'
180188
SUSPENDED_DB='0'
181189
SUSPENDED_CRON='0'
190+
IP_AVAIL='$ip_avail'
182191
IP_OWNED='0'
183-
U_USERS='0'
192+
U_USERS='$u_users'
184193
U_DISK='0'
185194
U_DISK_DIRS='0'
186195
U_DISK_WEB='0'

bin/v_change_user_package

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ SUSPENDED_DNS='$SUSPENDED_DNS'
9090
SUSPENDED_MAIL='$SUSPENDED_MAIL'
9191
SUSPENDED_DB='$SUSPENDED_DB'
9292
SUSPENDED_CRON='$SUSPENDED_CRON'
93+
IP_AVAIL='$IP_AVAIL'
9394
IP_OWNED='$IP_OWNED'
9495
U_USERS='$U_USERS'
9596
U_DISK='$U_DISK'

bin/v_list_user

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ fields='$USER $FNAME $LNAME $PACKAGE $WEB_DOMAINS $WEB_ALIASES $WEB_TPL
9191
$DNS_DOMAINS $DNS_RECORDS $MAIL_DOMAINS $MAIL_ACCOUNTS $DATABASES
9292
$CRON_JOBS $DISK_QUOTA $BANDWIDTH $NS $SHELL $BACKUPS $CONTACT $REPORTS
9393
$RKEY $SUSPENDED $SUSPENDED_USERS $SUSPENDED_WEB $SUSPENDED_DNS
94-
$SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_OWNED $U_USERS
94+
$SUSPENDED_MAIL $SUSPENDED_DB $SUSPENDED_CRON $IP_AVAIL $IP_OWNED $U_USERS
9595
$U_DISK $U_DISK_DIRS $U_DISK_WEB $U_DISK_MAIL $U_DISK_DB $U_BANDWIDTH
9696
$U_WEB_DOMAINS $U_WEB_SSL $U_WEB_ALIASES $U_DNS_DOMAINS $U_DNS_RECORDS
9797
$U_MAIL_DOMAINS $U_MAIL_ACCOUNTS $U_DATABASES $U_CRON_JOBS $DATE'

bin/v_list_user_ips

Lines changed: 54 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -21,46 +21,55 @@ source $V_FUNC/shared.func
2121
json_list_user_ips() {
2222
# Print top bracket
2323
echo '{'
24-
25-
owned_ips=$(grep -l "OWNER='$user'" $V_IPS/*)
26-
shared_ips=$(grep -H -A5 "OWNER='admin'" $V_IPS/* |\
27-
grep "STATUS='shared'"|\
28-
cut -f 1 -d - )
29-
30-
ip_list="$owned_ips\n$shared_ips"
3124
fileds_count=$(echo "$fields" | wc -w)
32-
33-
# Starting main loop
34-
for IP in $(echo -e "$ip_list" | sort -u); do
35-
IP=$(basename $IP)
36-
ip_data=$(cat $V_IPS/$IP)
37-
38-
# Assing key=value
39-
eval $ip_data
40-
41-
# Closing bracket if there already was output
42-
if [ -n "$data" ]; then
43-
echo -e ' },'
44-
fi
45-
i=1
46-
for field in $fields; do
47-
eval value=$field
48-
49-
if [ $i -eq 1 ]; then
50-
# Printing parrent
51-
(( ++i))
52-
echo -e "\t\"$value\": {"
53-
else
54-
# Printing child
55-
if [ $i -lt $fileds_count ]; then
25+
for IP in $(ls $V_IPS/); do
26+
source $V_IPS/$IP
27+
if [ "$OWNER" = "$user" ]; then
28+
eval echo "$fields"
29+
# Closing bracket if there already was output
30+
if [ -n "$data" ]; then
31+
echo -e ' },'
32+
fi
33+
i=1
34+
for field in $fields; do
35+
eval value=$field
36+
if [ $i -eq 1 ]; then
37+
# Printing parrent
5638
(( ++i))
57-
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
39+
echo -e "\t\"$value\": {"
5840
else
59-
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
60-
data=1
41+
# Printing child
42+
if [ $i -lt $fileds_count ]; then
43+
(( ++i))
44+
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
45+
else
46+
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
47+
data=1
48+
fi
6149
fi
50+
done
51+
else
52+
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
53+
i=1
54+
for field in $fields; do
55+
eval value=$field
56+
if [ $i -eq 1 ]; then
57+
# Printing parrent
58+
(( ++i))
59+
echo -e "\t\"$value\": {"
60+
else
61+
# Printing child
62+
if [ $i -lt $fileds_count ]; then
63+
(( ++i))
64+
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
65+
else
66+
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
67+
data=1
68+
fi
69+
fi
70+
done
6271
fi
63-
done
72+
fi
6473
done
6574

6675
# Closing bracket if there was output
@@ -70,35 +79,20 @@ json_list_user_ips() {
7079

7180
# Printing bottom bracket
7281
echo -e '}'
82+
7383
}
7484

7585
# Shell function
7686
shell_list_user_ips() {
77-
owned_ips=$(grep -l "OWNER='$user'" $V_IPS/*)
78-
shared_ips=$(grep -H -A5 "OWNER='admin'" $V_IPS/* |\
79-
grep "STATUS='shared'"|\
80-
cut -f 1 -d - )
81-
82-
ip_list="$owned_ips\n$shared_ips"
83-
if [ -z "$nohead" ]; then
84-
# Print brief info
85-
echo "${fields//$/}"
86-
for a in $fields; do
87-
echo -e "--------- \c"
88-
done
89-
echo
90-
fi
91-
92-
# Starting main loop
93-
for IP in $(echo -e "$ip_list" | sort -u); do
94-
IP=$(basename $IP)
95-
ip_data=$(cat $V_IPS/$IP)
96-
97-
# Assign key/value config
98-
eval $ip_data
99-
100-
# Print result line
101-
eval echo "$fields"
87+
for IP in $(ls $V_IPS/); do
88+
source $V_IPS/$IP
89+
if [ "$OWNER" = "$user" ]; then
90+
eval echo "$fields"
91+
else
92+
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
93+
eval echo "$fields"
94+
fi
95+
fi
10296
done
10397
}
10498

bin/v_list_users

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,10 @@ fields="$fields \$DNS_DOMAINS \$DNS_RECORDS \$MAIL_DOMAINS \$MAIL_ACCOUNTS"
8787
fields="$fields \$DATABASES \$CRON_JOBS \$DISK_QUOTA \$BANDWIDTH \$NS \$SHELL"
8888
fields="$fields \$BACKUPS \$CONTACT \$REPORTS \$RKEY \$SUSPENDED"
8989
fields="$fields \$SUSPENDED_USERS \$SUSPENDED_WEB \$SUSPENDED_DNS"
90-
fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_OWNED"
91-
fields="$fields \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB \$U_DISK_MAIL"
92-
fields="$fields \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS \$U_WEB_SSL"
93-
fields="$fields \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS "
90+
fields="$fields \$SUSPENDED_MAIL \$SUSPENDED_DB \$SUSPENDED_CRON \$IP_AVAIL"
91+
fields="$fields \$IP_OWNED \$U_USERS \$U_DISK \$U_DISK_DIRS \$U_DISK_WEB"
92+
fields="$fields \$U_DISK_MAIL \$U_DISK_DB \$U_BANDWIDTH \$U_WEB_DOMAINS"
93+
fields="$fields \$U_WEB_SSL \$U_WEB_ALIASES \$U_DNS_DOMAINS \$U_DNS_RECORDS"
9494
fields="$fields \$U_MAIL_DOMAINS \$U_MAIL_ACCOUNTS \$U_DATABASES \$U_CRON_JOBS"
9595
fields="$fields \$DATE"
9696

bin/v_update_user_counters

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ for user in $user_list; do
5555
SUSPENDED_MAIL=0
5656
SUSPENDED_DB=0
5757
SUSPENDED_CRON=0
58+
IP_AVAIL=0
5859
IP_OWNED=0
5960
U_USERS=0
6061
DISK=0
@@ -85,7 +86,6 @@ for user in $user_list; do
8586
if [ "$user" = 'admin' ]; then
8687
SUSPENDED_USERS=$(grep "SUSPENDED='yes'" $V_USERS/*/user.conf|wc -l)
8788
U_USERS=$(ls $V_USERS/|wc -l)
88-
U_USERS=$((U_USERS - 1))
8989
fi
9090

9191
# Checking ip
@@ -94,7 +94,14 @@ for user in $user_list; do
9494
if [ "$OWNER" = "$user" ]; then
9595
IP_OWNED=$((IP_OWNED + 1))
9696
fi
97+
if [ "$OWNER" = 'admin' ] && [ "$STATUS" = 'shared' ]; then
98+
IP_AVAIL=$((IP_AVAIL + IP_OWNED))
99+
IP_AVAIL=$((IP_AVAIL + 1))
100+
fi
97101
done
102+
if [ "$user" = 'admin' ]; then
103+
IP_AVAIL=$(ls $V_IPS | wc -l)
104+
fi
98105

99106
# Checking web system
100107
for domain_str in $(cat $V_USERS/$user/web.conf) ;do
@@ -159,6 +166,7 @@ for user in $user_list; do
159166
update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL"
160167
update_user_value "$user" '$SUSPENDED_DB' "$SUSPENDED_DB"
161168
update_user_value "$user" '$SUSPENDED_CRON' "$SUSPENDED_CRON"
169+
update_user_value "$user" '$IP_AVAIL' "$IP_AVAIL"
162170
update_user_value "$user" '$IP_OWNED' "$IP_OWNED"
163171
update_user_value "$user" '$U_USERS' "$U_USERS"
164172
update_user_value "$user" '$U_DISK' "$U_DISK"

0 commit comments

Comments
 (0)