From e55901861559e383a219d1613501ce71d6ee2f1a Mon Sep 17 00:00:00 2001 From: Matthew Grotke Date: Wed, 27 May 2026 03:34:57 -0400 Subject: [PATCH] Development --- docker/routlin-dash/app/action_networklayout.py | 3 +++ docker/routlin-dash/data/page_content.json | 1 + 2 files changed, 4 insertions(+) diff --git a/docker/routlin-dash/app/action_networklayout.py b/docker/routlin-dash/app/action_networklayout.py index de75c31..a7739e6 100644 --- a/docker/routlin-dash/app/action_networklayout.py +++ b/docker/routlin-dash/app/action_networklayout.py @@ -200,6 +200,9 @@ def networklayout_tablevlans_edit(): new_identities.append(entry) gateway_raw = sanitize.ip(request.form.get('gateway', '')) + if gateway_raw and gateway_raw not in identity_ips: + flash(f"Gateway '{gateway_raw}' must match one of the server identity IPs.", 'error') + return redirect(VIEW) inferred_gw = (min(identity_ips, key=lambda ip: int(ip.split('.')[-1])) if identity_ips else '') new_stored_gw = gateway_raw if (gateway_raw and gateway_raw != inferred_gw) else '' diff --git a/docker/routlin-dash/data/page_content.json b/docker/routlin-dash/data/page_content.json index e4d88f5..b0826ad 100644 --- a/docker/routlin-dash/data/page_content.json +++ b/docker/routlin-dash/data/page_content.json @@ -1581,6 +1581,7 @@ "col": "server_identity_ips", "input_type": "textarea_pair", "col_label": "IP Address", + "col_validate": "ip", "pair_col": "server_identity_descriptions", "pair_label": "Description (Opt)", "pair_col2": "server_identity_hostnames",