From 07cdbbfab5e8873bef4d27ca92796ca119c12340 Mon Sep 17 00:00:00 2001 From: Aidaho Date: Thu, 30 May 2024 21:10:42 +0300 Subject: [PATCH] v7.2.5.0: Add IP address validation and server field check This commit primarily adds a function that validates IP addresses and a function that checks if a server field is filled in the script.js file. Also, it removes the token from several ajax requests, and improves error handling in server.py. In the users.js file, it updates the server info display functionality. --- app/modules/server/server.py | 19 +++++++++++++++---- app/static/js/users.js | 5 ++--- inc/script.js | 27 ++++++++++++++------------- 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/app/modules/server/server.py b/app/modules/server/server.py index f6c2fc74..e3a8b1cc 100644 --- a/app/modules/server/server.py +++ b/app/modules/server/server.py @@ -131,7 +131,16 @@ def get_system_info(server_ip: str) -> str: raise Exception(e) os_info = os_info.strip() - system_info = json.loads(sys_info_returned) + try: + system_info = json.loads(sys_info_returned) + system_info['id'] + except Exception: + sys_info_returned = json.loads(sys_info_returned) + try: + sys_info_returned = sys_info_returned[0] + except Exception as e: + raise Exception(f'error: Cannot parse output {e}') + system_info = sys_info_returned sys_info = {'hostname': system_info['id'], 'family': ''} cpu = {'cpu_model': '', 'cpu_core': 0, 'cpu_thread': 0, 'hz': 0} @@ -342,7 +351,7 @@ def get_system_info(server_ip: str) -> str: try: server_sql.insert_system_info(server_id, os_info, sys_info, cpu, ram, network, disks) except Exception as e: - raise e + raise f'error: Cannot get system info from server: {e}' def show_system_info(server_ip: str, server_id: int) -> str: @@ -350,7 +359,7 @@ def show_system_info(server_ip: str, server_id: int) -> str: try: get_system_info(server_ip) except Exception as e: - return f'error: Cannot get system info: {e}' + return f'{e}' try: system_info = server_sql.select_one_system_info(server_id) except Exception as e: @@ -365,8 +374,10 @@ def update_system_info(server_ip: str, server_id: int) -> str: try: get_system_info(server_ip) + except Exception as e: + return f'{e}' + try: system_info = server_sql.select_one_system_info(server_id) - return render_template('ajax/show_system_info.html', system_info=system_info, server_ip=server_ip, server_id=server_id) except Exception as e: return f'error: Cannot update server info: {e}' diff --git a/app/static/js/users.js b/app/static/js/users.js index ecb2de7d..e9a18db6 100644 --- a/app/static/js/users.js +++ b/app/static/js/users.js @@ -1392,9 +1392,8 @@ function updateServerInfo(ip, id) { if (data.indexOf('error:') != '-1' || data.indexOf('error_code') != '-1') { toastr.error(data); } else { - $("#server_info-" + id).html(data); - $('#server_info-' + id).show(); - $('#server_info_link-' + id).attr('title', 'Hide System info'); + $("#server-info").html(data); + $('#server-info').show(); $.getScript(awesome); } } diff --git a/inc/script.js b/inc/script.js index 77e66d92..c46935c8 100644 --- a/inc/script.js +++ b/inc/script.js @@ -6,6 +6,20 @@ function validateEmail(email) { const re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(email); } +function ValidateIPaddress(ipaddress) { + if (/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(ipaddress)) { + return (true) + } + return (false) +} +var select_server = $('#translate').attr('data-select_server'); +function checkIsServerFiled(select_id, message = select_server) { + if ($(select_id).val() == null || $(select_id).val() == '') { + toastr.warning(message); + return false; + } + return true; +} function escapeHtml(unsafe) { return unsafe .replace(/&/g, "&") @@ -166,10 +180,6 @@ if(localStorage.getItem('restart')) { var ip_for_restart = localStorage.getItem('restart'); $.ajax({ url: "/app/service/check-restart/" + ip_for_restart, - // data: { - // token: $('#token').val() - // }, - // type: "POST", success: function (data) { if (data.indexOf('ok') != '-1') { var apply_div = $.find("#apply_div"); @@ -320,10 +330,6 @@ $( document ).ajaxComplete(function( event, request, settings ) { function showStats() { $.ajax({ url: "/app/stats/view/" + $("#service").val() + "/" + $("#serv").val(), - // data: { - // token: $('#token').val() - // }, - // type: "POST", success: function (data) { if (data.indexOf('error:') != '-1' && data.indexOf('Internal error:') == '-1') { toastr.error(data); @@ -399,7 +405,6 @@ function showLog() { hour1: hour1, minute1: minute1, file: file, - token: $('#token').val() }, type: "POST", success: function( data ) { @@ -429,7 +434,6 @@ function showRemoteLogFiles() { url: "/app/logs/" + service + "/" + serv , data: { serv: $("#serv").val(), - token: $('#token').val() }, type: "POST", success: function( data ) { @@ -479,7 +483,6 @@ function showCompare() { data: { left: $('#left').val(), right: $("#right").val(), - token: $('#token').val() }, type: "POST", success: function( data ) { @@ -681,7 +684,6 @@ function viewLogs() { minute: minute, hour1: hour1, minute1: minute1, - token: $('#token').val(), }, type: "POST", success: function (data) { @@ -1334,7 +1336,6 @@ function changeUserPasswordItOwn(d) { data: { updatepassowrd: pass, uuid: Cookies.get('uuid'), - token: $('#token').val() }, type: "POST", success: function (data) {