From 9548ac6d9a940124f8fd0da4d6d2d519065c2931 Mon Sep 17 00:00:00 2001 From: Aidaho Date: Sun, 10 Nov 2024 11:09:07 +0300 Subject: [PATCH] v8.1.1: Update WAF overview and simplify service ID handling Removed redundant service checks for 'haproxy' and 'nginx' in WAF routes. Simplified action confirmation logic by using hidden input to fetch server names dynamically. Updated database operation calls to be concise for deleting and updating group settings. --- app/create_db.py | 2 +- app/modules/db/group.py | 6 ++---- app/routes/waf/routes.py | 21 +++++---------------- app/static/js/overview.js | 3 ++- app/templates/ajax/overviewWaf.html | 14 ++++++++------ app/templates/service.html | 10 +++++----- 6 files changed, 23 insertions(+), 33 deletions(-) diff --git a/app/create_db.py b/app/create_db.py index b4e84313..caf8a527 100644 --- a/app/create_db.py +++ b/app/create_db.py @@ -692,7 +692,7 @@ def update_db_v_8_1_2(): def update_ver(): try: - Version.update(version='8.1.2').execute() + Version.update(version='8.1.1').execute() except Exception: print('Cannot update version') diff --git a/app/modules/db/group.py b/app/modules/db/group.py index 363b07a0..1c9e138f 100644 --- a/app/modules/db/group.py +++ b/app/modules/db/group.py @@ -94,16 +94,14 @@ def delete_group(group_id): def delete_group_settings(group_id): try: - group_for_delete = Setting.delete().where(Setting.group_id == group_id) - group_for_delete.execute() + Setting.delete().where(Setting.group_id == group_id).execute() except Exception as e: out_error(e) def update_group(name, descript, group_id): try: - group_update = Groups.update(name=name, description=descript).where(Groups.group_id == group_id) - group_update.execute() + Groups.update(name=name, description=descript).where(Groups.group_id == group_id).execute() except Exception as e: out_error(e) diff --git a/app/routes/waf/routes.py b/app/routes/waf/routes.py index 51c75b52..5f62c5dc 100644 --- a/app/routes/waf/routes.py +++ b/app/routes/waf/routes.py @@ -40,7 +40,6 @@ def waf(service): kwargs = { 'title': 'Web application firewall', - 'autorefresh': 1, 'serv': '', 'servers': waf_sql.select_waf_servers_metrics(g.user_params['group_id']), 'servers_all': servers, @@ -84,11 +83,9 @@ def waf_rules(service, server_ip): return render_template('waf.html', **kwargs) -@bp.route('///rule/') +@bp.route('///rule/') @get_user_params() def waf_rule_edit(service, server_ip, rule_id): - if service not in ('haproxy', 'nginx'): - abort(404) roxywi_auth.page_for_admin(level=2) if not roxywi_auth.is_access_permit_to_service(service): abort(403, f'You do not have needed permissions to access to {service.title()} service') @@ -180,16 +177,14 @@ def enable_rule(server_ip, rule_id, enable): return roxywi_common.handle_json_exceptions(e, f'Cannot enable WAF rule {rule_id}', server_ip) -@bp.route('///rule/create', methods=['POST']) +@bp.route('///rule/create', methods=['POST']) def create_rule(service, server_ip): server_ip = common.is_ip_or_dns(server_ip) json_data = request.get_json() - if service not in ('haproxy', 'nginx'): - return roxywi_common.handle_json_exceptions('Wrong service', '', server_ip) try: last_id = roxy_waf.create_waf_rule(server_ip, service, json_data) - return jsonify({'status': 'created', 'id': last_id}) + return jsonify({'status': 'Ok', 'id': last_id}) except Exception as e: return roxywi_common.handle_json_exceptions(e, 'Cannot create WAF rule', server_ip,) @@ -203,15 +198,9 @@ def change_waf_mode(service, server_id, waf_mode): return roxywi_common.handle_json_exceptions(e, 'Cannot change WAF mode', server_id) -@bp.route('/overview//') +@bp.route('/overview//') def overview_waf(service, server_ip): - if service not in ('haproxy', 'nginx'): - abort(404) server_ip = common.is_ip_or_dns(server_ip) - - if service not in ('haproxy', 'nginx'): - return 'error: Wrong service' - claims = get_jwt() return roxy_waf.waf_overview(server_ip, service, claims) @@ -221,6 +210,6 @@ def overview_waf(service, server_ip): def enable_metric(enable, server_id): try: waf_sql.update_waf_metrics_enable(server_id, enable) - return jsonify({'status': 'updated'}) + return jsonify({'status': 'Ok'}) except Exception as e: return roxywi_common.handle_json_exceptions(e, 'Cannot enable WAF metrics', server_id) diff --git a/app/static/js/overview.js b/app/static/js/overview.js index 486509c3..2074776d 100644 --- a/app/static/js/overview.js +++ b/app/static/js/overview.js @@ -216,8 +216,9 @@ $( function() { } }); }); -function confirmAjaxAction(action, service, id, name) { +function confirmAjaxAction(action, service, id) { let action_word = translate_div.attr('data-'+action); + let name = $('#server-name-'+id).val(); $( "#dialog-confirm" ).dialog({ resizable: false, height: "auto", diff --git a/app/templates/ajax/overviewWaf.html b/app/templates/ajax/overviewWaf.html index e2d581f9..0b5afeb7 100644 --- a/app/templates/ajax/overviewWaf.html +++ b/app/templates/ajax/overviewWaf.html @@ -16,27 +16,29 @@ {% else %} {% endif %} - {{ service.0 }} + + {{ service.0 }} {% else %} - {{ service.0 }} + + {{ service.0 }} {% endif %} {% if service.3 == "On" or service.3 == "Off" or service.3 == "DetectionOnly" %} {% if role <= 2 %} - + - + {% if waf_service == 'haproxy' %} - + {% else %} - + {% endif %} {% endif %} diff --git a/app/templates/service.html b/app/templates/service.html index d5e9dec5..a15decc5 100644 --- a/app/templates/service.html +++ b/app/templates/service.html @@ -208,25 +208,25 @@ {% if g.user_params['role'] <= 3 %} - + - + {% for set in restart_settings %} {% if set.server_id == s.0 and set.setting == 'restart' and set.value|int == 0 %} - + {% endif %} {% endfor %} {% if restart_settings|length == 0 %} - + {% endif %} - + {% if service != 'keepalived' %}