Fixed
- Firewall rules now accept source 0.0.0.0/0 for all IPs
- "ANY" protocol creates both TCP and UDP rules automatically
- Outbound firewall rules now use correct destination_ips field

Added
- Incoming/Outgoing direction support for firewall rules
- Proper CIDR notation validation (supports /0, /4, /8, /16, etc.)

Improved
- Removed description/note field from firewall interface
- Changed "Source/Destination" column to "IP/CIDR" for clarity
- Translated all firewall column headers to all supported languages
- Cleaned up unused language strings
This commit is contained in:
ArkHost
2025-09-09 20:54:17 +02:00
committed by GitHub
parent fb4e94b086
commit 9049937d8e
11 changed files with 270 additions and 151 deletions
@@ -676,6 +676,13 @@
</div>
<div class="card-body">
<div class="row">
<div class="col-md-2">
<label class="small text-muted">{$ADDONLANG.Settings.Firewall.Direction}</label>
<select class="form-control" id="firewallDirection">
<option value="in" selected>{$ADDONLANG.Firewall.Incoming}</option>
<option value="out">{$ADDONLANG.Firewall.Outgoing}</option>
</select>
</div>
<div class="col-md-2">
<label class="small text-muted">{$ADDONLANG.Settings.Firewall.Action}</label>
<select class="form-control" id="firewallAction">
@@ -692,18 +699,14 @@
<option value="ANY">{$ADDONLANG.Firewall.Any}</option>
</select>
</div>
<div class="col-md-2">
<div class="col-md-3">
<label class="small text-muted">{$ADDONLANG.Settings.Firewall.Port}</label>
<input class="form-control" id="firewallPort" type="number" min="1" max="65535" placeholder="{$ADDONLANG.Firewall.PortPlaceholder}">
<input class="form-control" id="firewallPort" type="text" placeholder="{$ADDONLANG.Firewall.PortPlaceholder}">
</div>
<div class="col-md-3">
<label class="small text-muted">{$ADDONLANG.Settings.Firewall.Source}</label>
<label class="small text-muted">IP/CIDR</label>
<input class="form-control" id="firewallSource" type="text" placeholder="{$ADDONLANG.Firewall.SourcePlaceholder}">
</div>
<div class="col-md-3">
<label class="small text-muted">{$ADDONLANG.Settings.Firewall.Note}</label>
<input class="form-control" id="firewallNote" type="text" maxlength="64" placeholder="{$ADDONLANG.Firewall.DescriptionPlaceholder}">
</div>
</div>
<div class="text-right mt-3">
<button class="btn btn-success" onclick="addFirewallRule();return false;">
@@ -723,12 +726,12 @@
<table id="firewallTable" class="table table-hover mb-0">
<thead class="thead-light">
<tr>
<th width="100">Action</th>
<th width="100">Protocol</th>
<th width="100">Port</th>
<th>Source</th>
<th>Description</th>
<th width="80" class="text-center">Remove</th>
<th width="80">{$ADDONLANG.Firewall.Direction}</th>
<th width="100">{$ADDONLANG.Firewall.Action}</th>
<th width="100">{$ADDONLANG.Firewall.Protocol}</th>
<th width="100">{$ADDONLANG.Firewall.Port}</th>
<th>{$ADDONLANG.Firewall.IPCIDR}</th>
<th width="80" class="text-center">{$ADDONLANG.Firewall.Remove}</th>
</tr>
</thead>
<tbody>