Просмотр исходного кода

Update _common.sh: fix curl calls in private install by temporarily enabling access for visitors if needed

Alexandre Aubin 1 год назад
Родитель
Сommit
a4443fd181
1 измененных файлов с 22 добавлено и 20 удалено
  1. 22 20
      scripts/_common.sh

+ 22 - 20
scripts/_common.sh

@@ -1,25 +1,5 @@
 #!/bin/bash
 #!/bin/bash
 
 
-#=================================================
-# COMMON VARIABLES
-#=================================================
-
-#=================================================
-# PERSONAL HELPERS
-#=================================================
-
-#=================================================
-# EXPERIMENTAL HELPERS
-#=================================================
-
-#=================================================
-# FUTURE OFFICIAL HELPERS
-#=================================================
-
-#=================================================
-# ZABBIX HELPERS
-#=================================================
-
 # Get guest user state
 # Get guest user state
 #
 #
 # return 0 if enable, else 1
 # return 0 if enable, else 1
@@ -108,6 +88,13 @@ import_template () {
 	chmod a+x /etc/zabbix/zabbix_agentd.d/yunohost.sh
 	chmod a+x /etc/zabbix/zabbix_agentd.d/yunohost.sh
 
 
 	systemctl restart zabbix-agent
 	systemctl restart zabbix-agent
+
+	# Temporarily enable visitors if needed...
+	local visitors_enabled=$(ynh_permission_has_user "main" "visitors" && echo yes || echo no)
+	if [[ $visitors_enabled == "no" ]]; then
+	    ynh_permission_update --permission "main" --add "visitors"
+	fi
+ 
 	curlOptions="--noproxy $domain -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt --resolve $domain:443:127.0.0.1"
 	curlOptions="--noproxy $domain -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt --resolve $domain:443:127.0.0.1"
 
 
 	curl -L $curlOptions \
 	curl -L $curlOptions \
@@ -159,12 +146,23 @@ import_template () {
 	else
 	else
 		ynh_print_warn --message="Admin user cannot connect to the interface !"
 		ynh_print_warn --message="Admin user cannot connect to the interface !"
 	fi
 	fi
+
+	if [[ $visitors_enabled == "no" ]]; then
+	    ynh_permission_update --permission "main" --remove "visitors"
+        fi
 }
 }
 
 
 # Link YunoHost template to Zabbix server
 # Link YunoHost template to Zabbix server
 #
 #
 link_template () {
 link_template () {
 	ynh_print_info --message="Link YunoHost template to Zabbix server"
 	ynh_print_info --message="Link YunoHost template to Zabbix server"
+
+	# Temporarily enable visitors if needed...
+	local visitors_enabled=$(ynh_permission_has_user "main" "visitors" && echo yes || echo no)
+	if [[ $visitors_enabled == "no" ]]; then
+	    ynh_permission_update --permission "main" --add "visitors"
+	fi
+
 	#apply template to host
 	#apply template to host
 	tokenapi=$(curl --noproxy $domain -k -s --resolve $domain:443:127.0.0.1 --header "Content-Type: application/json" --request POST --data '{ "jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null}' "${zabbixFullpath}/api_jsonrpc.php" | jq -r '.result')
 	tokenapi=$(curl --noproxy $domain -k -s --resolve $domain:443:127.0.0.1 --header "Content-Type: application/json" --request POST --data '{ "jsonrpc": "2.0","method": "user.login","params": {"user": "Admin","password": "zabbix"},"id": 1,"auth": null}' "${zabbixFullpath}/api_jsonrpc.php" | jq -r '.result')
 	zabbixHostID=$(curl --noproxy $domain -k -s --resolve $domain:443:127.0.0.1 --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0","method":"host.get","params":{"filter":{"host":["Zabbix server"]}},"auth":"'"$tokenapi"'","id":1}' "${zabbixFullpath}/api_jsonrpc.php" | jq -r '.result[0].hostid')
 	zabbixHostID=$(curl --noproxy $domain -k -s --resolve $domain:443:127.0.0.1 --header "Content-Type: application/json" --request POST --data '{"jsonrpc":"2.0","method":"host.get","params":{"filter":{"host":["Zabbix server"]}},"auth":"'"$tokenapi"'","id":1}' "${zabbixFullpath}/api_jsonrpc.php" | jq -r '.result[0].hostid')
@@ -176,6 +174,10 @@ link_template () {
 	else
 	else
 		ynh_print_warn --message="YunoHost template not linked to Zabbix server !"
 		ynh_print_warn --message="YunoHost template not linked to Zabbix server !"
 	fi
 	fi
+
+ 	if [[ $visitors_enabled == "no" ]]; then
+	    ynh_permission_update --permission "main" --remove "visitors"
+        fi
 }
 }
 
 
 # Check if Zabbix server is started
 # Check if Zabbix server is started