Skip to content

Commit fc37379

Browse files
committed
Allow apikey to be used for autentication
1 parent f755067 commit fc37379

File tree

3 files changed

+76
-29
lines changed

3 files changed

+76
-29
lines changed

bin/v-add-remote-dns-host

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ port=$2
1616
PORT=$port
1717
user=$3
1818
USER=$user
19+
hash=$user
20+
HASH=$user
1921
password=$4; HIDE=4
2022
PASSWORD=$password
2123
type=${5-api}
@@ -33,9 +35,14 @@ source $HESTIA/conf/hestia.conf
3335
# Verifications #
3436
#----------------------------------------------------------#
3537

36-
args_usage='HOST PORT USER PASSWORD [TYPE] [DNS_USER]'
37-
check_args '4' "$#" "$args_usage"
38-
is_format_valid 'host' 'port' 'user' 'type' 'dns_user'
38+
args_usage='HOST PORT USER [PASSWORD] [TYPE] [DNS_USER]'
39+
check_args '3' "$#" "$args_usage"
40+
is_format_valid 'host' 'port' 'type' 'dns_user'
41+
if [ -z "$password" ]; then
42+
is_format_valid 'hash'
43+
else
44+
is_format_valid 'user'
45+
fi
3946
is_system_enabled "$DNS_SYSTEM" 'DNS_SYSTEM'
4047
is_password_valid
4148
is_dnshost_new
@@ -51,10 +58,17 @@ time_n_date=$(date +'%T %F')
5158
time=$(echo "$time_n_date" |cut -f 1 -d \ )
5259
date=$(echo "$time_n_date" |cut -f 2 -d \ )
5360

54-
# Concatentating dns host string
55-
str="HOST='$host' PORT='$port' USER='$user' PASSWORD='$password'"
56-
str="$str DNS_USER='$dns_user' TYPE='$type' SUSPENDED='no'"
57-
str="$str TIME='$time' DATE='$date'"
61+
if [ -z $password ]; then
62+
# Concatentating dns host string
63+
str="HOST='$host' PORT='$port' HASH='$hash'"
64+
str="$str DNS_USER='$dns_user' TYPE='$type' SUSPENDED='no'"
65+
str="$str TIME='$time' DATE='$date'"
66+
else
67+
# Concatentating dns host string
68+
str="HOST='$host' PORT='$port' USER='$user' PASSWORD='$password'"
69+
str="$str DNS_USER='$dns_user' TYPE='$type' SUSPENDED='no'"
70+
str="$str TIME='$time' DATE='$date'"
71+
fi
5872

5973
# Adding host to dns-cluster.conf
6074
echo "$str" >> $HESTIA/conf/dns-cluster.conf

func/main.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -921,6 +921,12 @@ is_service_format_valid() {
921921
fi
922922
}
923923

924+
is_hash_format_valid() {
925+
if ! [[ "$1" =~ ^[_A-Za-z0-9]{1,32}$ ]]; then
926+
check_result $E_INVALID "invalid $2 format :: $1"
927+
fi
928+
}
929+
924930
# Format validation controller
925931
is_format_valid() {
926932
for arg_name in $*; do
@@ -952,6 +958,7 @@ is_format_valid() {
952958
extentions) is_common_format_valid "$arg" 'extentions' ;;
953959
ftp_password) is_password_format_valid "$arg" ;;
954960
ftp_user) is_user_format_valid "$arg" "$arg_name" ;;
961+
hash) is_hash_format_valid "$arg" "$arg_name" ;;
955962
host) is_object_format_valid "$arg" "$arg_name" ;;
956963
hour) is_cron_format_valid "$arg" $arg_name ;;
957964
id) is_int_format_valid "$arg" 'id' ;;

func/remote.sh

Lines changed: 48 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,58 @@ is_procces_running() {
99
}
1010

1111
send_api_cmd() {
12-
answer=$(curl -s -k \
13-
--data-urlencode "user=$USER" \
14-
--data-urlencode "password=$PASSWORD" \
15-
--data-urlencode "returncode=yes" \
16-
--data-urlencode "cmd=$1" \
17-
--data-urlencode "arg1=$2" \
18-
--data-urlencode "arg2=$3" \
19-
--data-urlencode "arg3=$4" \
20-
--data-urlencode "arg4=$5" \
21-
--data-urlencode "arg5=$6" \
22-
--data-urlencode "arg6=$7" \
23-
--data-urlencode "arg7=$8" \
24-
--data-urlencode "arg8=$9" \
25-
https://$HOST:$PORT/api/)
12+
if [ ! -z "$PASSWORD" ]; then
13+
answer=$(curl -s -k \
14+
--data-urlencode "user=$USER" \
15+
--data-urlencode "password=$PASSWORD" \
16+
--data-urlencode "returncode=yes" \
17+
--data-urlencode "cmd=$1" \
18+
--data-urlencode "arg1=$2" \
19+
--data-urlencode "arg2=$3" \
20+
--data-urlencode "arg3=$4" \
21+
--data-urlencode "arg4=$5" \
22+
--data-urlencode "arg5=$6" \
23+
--data-urlencode "arg6=$7" \
24+
--data-urlencode "arg7=$8" \
25+
--data-urlencode "arg8=$9" \
26+
https://$HOST:$PORT/api/)
27+
else
28+
answer=$(curl -s -k \
29+
--data-urlencode "hash=$HASH" \
30+
--data-urlencode "returncode=yes" \
31+
--data-urlencode "cmd=$1" \
32+
--data-urlencode "arg1=$2" \
33+
--data-urlencode "arg2=$3" \
34+
--data-urlencode "arg3=$4" \
35+
--data-urlencode "arg4=$5" \
36+
--data-urlencode "arg5=$6" \
37+
--data-urlencode "arg6=$7" \
38+
--data-urlencode "arg7=$8" \
39+
--data-urlencode "arg8=$9" \
40+
https://$HOST:$PORT/api/)
41+
fi
2642
return $answer
2743
}
2844

2945
send_api_file() {
30-
answer=$(curl -s -k \
31-
--data-urlencode "user=$USER" \
32-
--data-urlencode "password=$PASSWORD" \
33-
--data-urlencode "returncode=yes" \
34-
--data-urlencode "cmd=v-make-tmp-file" \
35-
--data-urlencode "arg1=$(cat $1)" \
36-
--data-urlencode "arg2=$2" \
37-
https://$HOST:$PORT/api/)
46+
if [ ! -z "$PASSWORD" ]; then
47+
answer=$(curl -s -k \
48+
--data-urlencode "user=$USER" \
49+
--data-urlencode "password=$PASSWORD" \
50+
--data-urlencode "returncode=yes" \
51+
--data-urlencode "cmd=v-make-tmp-file" \
52+
--data-urlencode "arg1=$(cat $1)" \
53+
--data-urlencode "arg2=$2" \
54+
https://$HOST:$PORT/api/)
55+
else
56+
answer=$(curl -s -k \
57+
--data-urlencode "hash=$HASH" \
58+
--data-urlencode "returncode=yes" \
59+
--data-urlencode "cmd=v-make-tmp-file" \
60+
--data-urlencode "arg1=$(cat $1)" \
61+
--data-urlencode "arg2=$2" \
62+
https://$HOST:$PORT/api/)
63+
fi
3864
return $answer
3965
}
4066

0 commit comments

Comments
 (0)