Skip to content

Commit b1c9568

Browse files
committed
implemented admin/user search
1 parent f685d8d commit b1c9568

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+789
-144
lines changed

bin/v_search_object

Lines changed: 131 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,55 @@ format=${2-shell}
1717
source $VESTA/conf/vesta.conf
1818
source $VESTA/func/main.sh
1919

20+
# Json list function
21+
json_list_search() {
22+
echo '{'
23+
fileds_count=$(echo $fields| wc -w )
24+
while read line; do
25+
eval $line
26+
if [ -n "$list_data" ]; then
27+
echo -e ' },'
28+
fi
29+
i=1
30+
IFS=' '
31+
for field in $fields; do
32+
eval value=\"$field\"
33+
value=$(echo "$value"|sed -e 's/"/\\"/g' -e "s/%quote%/'/g")
34+
if [ $i -eq 1 ]; then
35+
(( ++i))
36+
echo -e "\t\"$value\": {"
37+
else
38+
if [ $i -lt $fileds_count ]; then
39+
(( ++i))
40+
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\","
41+
else
42+
echo -e "\t\t\"${field//$/}\": \"${value//,/, }\""
43+
list_data=1
44+
fi
45+
fi
46+
done
47+
done < $conf
48+
if [ -n "$list_data" ]; then
49+
echo -e ' }'
50+
fi
51+
echo -e '}'
52+
}
53+
54+
# Shell list function
55+
shell_list_search() {
56+
if [ -z "$nohead" ] ; then
57+
echo "${fields//$/}"
58+
for a in $fields; do
59+
echo -e "------ \c"
60+
done
61+
echo
62+
fi
63+
while read line ; do
64+
eval $line
65+
eval echo "$fields" | sed -e "s/%quote%/'/g"
66+
done < $conf
67+
}
68+
2069
#----------------------------------------------------------#
2170
# Verifications #
2271
#----------------------------------------------------------#
@@ -40,43 +89,59 @@ for user in $(ls $VESTA/data/users/); do
4089
search=$(grep "$object" \
4190
$VESTA/data/users/$user/web.conf \
4291
$VESTA/data/users/$user/dns.conf \
92+
$VESTA/data/users/$user/dns/*.conf \
4393
$VESTA/data/users/$user/mail.conf \
44-
$VESTA/data/users/$user/db.conf)
94+
$VESTA/data/users/$user/mail/*.conf \
95+
$VESTA/data/users/$user/db.conf \
96+
$VESTA/data/users/$user/cron.conf 2> /dev/null)
4597

4698
for row in $search; do
4799
# Initialise variable
48100
key=''
49101
result=''
50102
dom_alias=''
51103
suspended=''
52-
object_time=''
104+
object_link=''
105+
object_parent=''
106+
object_time=''
53107
object_date=''
54108

55109
# Parsing result
56-
type=$(echo $row |cut -f 1 -d : |cut -f 8 -d / |cut -f 1 -d \.)
110+
type=$(echo $row |cut -f 1 -d : |cut -f 8 -d /)
57111
data=$(echo $row |cut -f 2,3,4,5 -d :)
58112
eval "$data"
59113

60114
# Check WEB domain
61-
dom_alias=''
62-
if [ "$type" = 'web' ]; then
115+
if [ "$type" = 'web.conf' ]; then
63116
if [ -n "$(echo $DOMAIN |grep $object)" ]; then
64117
# Check domain alias
65-
check_dom_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
66-
if [ ! -z "$check_dom_alias" ];then
67-
dom_alias=$(echo $check_dom_alias | tr ' ' ',')
118+
check_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
119+
if [ ! -z "$check_alias" ];then
120+
object_alias=$(echo $check_alias | tr ' ' ',')
68121
fi
69122
key="DOMAIN"
70123
result="$DOMAIN"
71124
suspended=$SUSPENDED
72125
object_time=$TIME
73126
object_date=$DATE
74127
((i ++))
128+
else
129+
check_alias="$(echo $ALIAS| tr ',' '\n' |grep $object)"
130+
if [ ! -z "$check_alias" ];then
131+
key="DOMAIN"
132+
result="$DOMAIN"
133+
object_parent="$DOMAIN"
134+
object_alias=$(echo $check_alias | tr ' ' ',')
135+
suspended=$SUSPENDED
136+
object_time=$TIME
137+
object_date=$DATE
138+
((i ++))
139+
fi
75140
fi
76141
fi
77142

78143
# DNS
79-
if [ "$type" = 'dns' ]; then
144+
if [ "$type" = 'dns.conf' ]; then
80145
if [ -n "$(echo $DOMAIN |grep $object)" ]; then
81146
key="DOMAIN"
82147
result="$DOMAIN"
@@ -87,8 +152,22 @@ for user in $(ls $VESTA/data/users/); do
87152
fi
88153
fi
89154

155+
# DNS Records
156+
if [ "$type" = 'dns' ]; then
157+
if [ -n "$(echo $RECORD |grep $object)" ]; then
158+
key="RECORD"
159+
result="$RECORD.$DOMAIN"
160+
suspended=$SUSPENDED
161+
object_link=$ID
162+
object_parent=$DOMAIN
163+
object_time=$TIME
164+
object_date=$DATE
165+
((i ++))
166+
fi
167+
fi
168+
90169
# MAIL
91-
if [ "$type" = 'mail' ]; then
170+
if [ "$type" = 'mail.conf' ]; then
92171
if [ -n "$(echo $DOMAIN |grep $object)" ]; then
93172
key="DOMAIN"
94173
result="$DOMAIN"
@@ -99,8 +178,24 @@ for user in $(ls $VESTA/data/users/); do
99178
fi
100179
fi
101180

181+
# Mail Accounts
182+
if [ "$type" = 'mail' ]; then
183+
type='mail'
184+
if [ -n "$(echo $ACCOUNT |grep $object)" ]; then
185+
key="ACCOUNT"
186+
dom="$(echo $row|cut -f 1 -d :|cut -f 9 -d /|sed -e "s/.conf//")"
187+
result="$ACCOUNT@$dom"
188+
suspended=$SUSPENDED
189+
object_link=$ACCOUNT
190+
object_parent=$dom
191+
object_time=$TIME
192+
object_date=$DATE
193+
((i ++))
194+
fi
195+
fi
196+
102197
# DB
103-
if [ "$type" = 'db' ]; then
198+
if [ "$type" = 'db.conf' ]; then
104199
if [ -n "$(echo $DB |grep $object)" ]; then
105200
key="DATABASE"
106201
result="$DB"
@@ -111,10 +206,26 @@ for user in $(ls $VESTA/data/users/); do
111206
fi
112207
fi
113208

209+
# Cron Jobs
210+
if [ "$type" = 'cron.conf' ]; then
211+
if [ -n "$(echo $CMD |grep $object)" ]; then
212+
key="JOB"
213+
result="$CMD"
214+
suspended=$SUSPENDED
215+
object_link=$JOB
216+
object_parent=$JOB
217+
object_time=$TIME
218+
object_date=$DATE
219+
((i ++))
220+
fi
221+
fi
222+
114223
if [ ! -z "$result" ]; then
224+
type=$(echo $type|cut -f1 -d \.)
115225
str="ID='$i' USER='$user' TYPE='$type' KEY='$key'"
116226
str="$str RESULT='$result' ALIAS='$dom_alias'"
117-
str="$str SUSPENDED='$suspended' TIME='$object_time'"
227+
str="$str LINK='$object_link' PARENT='$object_parent'"
228+
str="$str SUSPENDED='$suspended' TIME='$object_time'"
118229
str="$str DATE='$object_date'"
119230
echo $str >> $conf
120231
fi
@@ -123,14 +234,16 @@ done
123234
IFS=$OLD_IFS
124235

125236
# Defining fileds to select
126-
fields='$ID $USER $TYPE $KEY $RESULT $ALIAS $SUSPENDED $TIME $DATE'
237+
fields='$ID $USER $TYPE $KEY $RESULT $ALIAS $LINK $PARENT $SUSPENDED $TIME'
238+
fields="$fields \$DATE"
127239

128240
# Listing domains
129-
case $format in
130-
json) json_list ;;
131-
plain) nohead=1; shell_list ;;
132-
shell) fields='$USER $TYPE $KEY $RESULT $ALIAS'; shell_list |column -t;;
133-
*) check_args '2' '0' 'object [format]'
241+
case $format in
242+
json) json_list_search ;;
243+
plain) nohead=1; shell_list_search ;;
244+
shell) fields='$USER~$TYPE~$KEY~$RESULT~$ALIAS';
245+
shell_list |column -t -s '~' ;;
246+
*) check_args '1' '0' 'object [format]'
134247
esac
135248

136249
rm $conf

0 commit comments

Comments
 (0)