OPNSense/core 8297c7dsrc/opnsense/scripts/captiveportal/lib db.py

remove unused code
DeltaFile
+1-30src/opnsense/scripts/captiveportal/lib/db.py
+1-301 files

OPNSense/core fe4748bsrc/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt, src/opnsense/scripts/captiveportal/lib arp.py

captive portal: some more cleanups
DeltaFile
+8-9src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+0-11src/opnsense/scripts/captiveportal/lib/arp.py
+8-202 files

OPNSense/core c6d526fsrc/opnsense/scripts/captiveportal/lib ipfw.py pf.py

in fact, this documents itself
DeltaFile
+0-4src/opnsense/scripts/captiveportal/lib/ipfw.py
+0-4src/opnsense/scripts/captiveportal/lib/pf.py
+0-82 files

OPNSense/core 8be14b6src/opnsense/scripts/captiveportal/lib ipfw.py pf.py

captive portal: no scope stripping needed
DeltaFile
+1-3src/opnsense/scripts/captiveportal/lib/ipfw.py
+1-3src/opnsense/scripts/captiveportal/lib/pf.py
+2-62 files

OPNSense/core 43675ddsrc/opnsense/scripts/captiveportal cp-background-process.py, src/opnsense/scripts/captiveportal/lib arp.py

captive portal: simplify hostdiscovery output handling
DeltaFile
+20-80src/opnsense/scripts/captiveportal/lib/arp.py
+1-1src/opnsense/scripts/captiveportal/cp-background-process.py
+21-812 files

OPNSense/core 2be1c50src/etc/rc.syshook.d/update 10-refresh.sh

firmware: put 99e4cd28b64b2f back where it belongs

Without backgrounding because this is important.

(cherry picked from commit 8a52f03b37542ff6978afc4a5edef6428b9563ef)
DeltaFile
+3-0src/etc/rc.syshook.d/update/10-refresh.sh
+3-01 files

OPNSense/core 8a52f03src/etc/rc.syshook.d/update 10-refresh.sh

firmware: put 99e4cd28b64b2f back where it belongs

Without backgrounding because this is important.
DeltaFile
+3-0src/etc/rc.syshook.d/update/10-refresh.sh
+3-01 files

OPNSense/core 02c8989src/etc/rc.syshook.d/update 10-refresh.sh

firmware: avoid update-hook background cleanups

Since ea75da8a this is no longer necessary although the introduction
in 039ae3c19 states that this was happening and allegedly helping.

Pre-upgrade runs this as well as the cleanup audit if it's needed
manually.

(cherry picked from commit a6f5203adb751dd66def0938434fec2a2c0d94e3)
DeltaFile
+0-3src/etc/rc.syshook.d/update/10-refresh.sh
+0-31 files

OPNSense/core a6f5203src/etc/rc.syshook.d/update 10-refresh.sh

firmware: avoid update-hook background cleanups

Since ea75da8a this is no longer necessary although the introduction
in 039ae3c19 states that this was happening and allegedly helping.

Pre-upgrade runs this as well as the cleanup audit if it's needed
manually.
DeltaFile
+0-3src/etc/rc.syshook.d/update/10-refresh.sh
+0-31 files

OPNSense/core d1ee6b7src/opnsense/scripts/captiveportal cp-background-process.py, src/opnsense/scripts/captiveportal/lib db.py arp.py

captive portal: fix and clean up session handling
DeltaFile
+63-13src/opnsense/scripts/captiveportal/lib/db.py
+29-40src/opnsense/scripts/captiveportal/cp-background-process.py
+24-9src/opnsense/scripts/interfaces/list_hosts.py
+2-2src/opnsense/scripts/captiveportal/lib/arp.py
+1-1src/opnsense/service/templates/OPNsense/Captiveportal/captiveportal.conf
+119-655 files

OPNSense/core b8af343src/opnsense/mvc/app/views/OPNsense/Firewall alias.volt

Firewall: Aliases - allow TTL usage on host entries, closes https://github.com/opnsense/core/issues/9767

(cherry picked from commit 774a51d6261d1804c30ae6f0ce0d0ee07065902f)
DeltaFile
+2-1src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+2-11 files

OPNSense/core 2a64a86src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

mvc: catch empty data in CSV import

(cherry picked from commit ed748aef157e34b5f4d02b47c4d755d15a330493)
(cherry picked from commit fcb6f76bd80c32053f739e98f6fc2c6caa9033a7)
(cherry picked from commit 07a5ec72f305c5f4416bfbe35790acbe7fc38686)
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+1-11 files

OPNSense/core 07a5ec7src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

mvc: array_first() is PHP 8.5
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+1-11 files

OPNSense/core fcb6f76src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

mvc: review feedback
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+1-11 files

OPNSense/core 81c5932src/opnsense/www/js opnsense_ui.js

mvc:javascript:SimpleFileUploadDlg() - add download button for validation errors, closes https://github.com/opnsense/core/issues/9760

When uploading a file results in validation messages, add a download button to dump the results into a csv file as well.
Since our javascript code doesn't translate very well, only add an icon and skip the title text for simplicity.

(cherry picked from commit b2aae25d6ae21c32f753559c8f5f0858efe04220)
DeltaFile
+22-1src/opnsense/www/js/opnsense_ui.js
+22-11 files

OPNSense/core 3b3a97asrc/opnsense/mvc/app/controllers/OPNsense/Base ApiControllerBase.php

ApiControllerBase->exportCsv: add $separator as parameter and swtich the default to a semicolon (;), importCsv() already understands both, but semicolon seems to be more commonly used, which helps tools like Excel to open the file instantly as table.

(cherry picked from commit e1f7cf04e12e7502b772acf1a5e16ce46208530d)
DeltaFile
+4-3src/opnsense/mvc/app/controllers/OPNsense/Base/ApiControllerBase.php
+4-31 files

OPNSense/core 29a74a2src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Remove console log
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+0-11 files

OPNSense/core 6239603src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

The hash was consumed too early now, fix it by shifting to the new spot where the variable is used last
DeltaFile
+2-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+2-11 files

OPNSense/core dc5be80src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Only get the hash once, use it everywhere, re-add missing null fallback and initialized interface variable
DeltaFile
+4-6src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+4-61 files

OPNSense/core ed748aesrc/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

mvc: catch empty data in CSV import

Catch empty lines.  A single "," will generate
an empty string instead of NULL so we are good
here.  It's safe to assume we have at least one
property in the line, otherwise the data is
useless to us anyway.

From the fgetcsv() manual:

A blank line in a CSV file will be returned as an array
comprising a single null field, and will not be treated
as an error.

See: https://www.php.net/manual/en/function.fgetcsv.php
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+1-11 files

OPNSense/core 774a51dsrc/opnsense/mvc/app/views/OPNsense/Firewall alias.volt

Firewall: Aliases - allow TTL usage on host entries, closes https://github.com/opnsense/core/issues/9767
DeltaFile
+2-1src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+2-11 files

OPNSense/core a312fc9src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Clean up URL hash logic, we only allow #search and #interface now and need no special handling
DeltaFile
+8-16src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+8-161 files

OPNSense/core d90621dsrc/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Ensure UUIDs are always searchable
DeltaFile
+6-2src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+6-21 files

OPNSense/core 42f869csrc/www firewall_rule_lookup.php

Reduce complexity of firewall_rule_lookup, we have an all rules entrypoint now, so potentially we could just search for the UUID of the rule without concerning us with interfaces anymore
DeltaFile
+1-12src/www/firewall_rule_lookup.php
+1-121 files

OPNSense/core a24d93fsrc/www firewall_rule_lookup.php

Remove previous change, this needs a closer look in another branch.
DeltaFile
+0-4src/www/firewall_rule_lookup.php
+0-41 files

OPNSense/core 9271d08src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php, src/opnsense/mvc/app/views/OPNsense/IDS index.volt

bootgrid: batch enable/disable-selected toggle by default, clean up IDS page (#9768)

The footer commands weren't taking into account the required properties, rendering unlinked buttons where they shouldn't be (e.g. in dnsmasq DHCP ranges etc.).

Take this opportunity to clean up and improve some front-end code, including batching of enable/disable-selected API calls. The arbitrary default limit of "40" has been set based on (40 * 36-character UUID + ~150-character URI out of a 2k URI character limit).

In the controller, change how rows are collected (use getNodeByReference only for rootnode) to save some cycles, throw an error if someone tries to swap multiple records at once as that is less likely intentional anyway (explicit on/off are acceptable values) and keep simplified result output.

Reference: https://forum.opnsense.org/index.php?topic=50806.0

---------

Co-authored-by: Ad Schellevis <ad at opnsense.org>
DeltaFile
+3-104src/opnsense/mvc/app/views/OPNsense/IDS/index.volt
+21-22src/opnsense/www/js/opnsense_bootgrid.js
+20-10src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+44-1363 files

OPNSense/core c90e940src/www firewall_rule_lookup.php

Change url hash to __floating inside the firewall_rule_lookup when interface is an empty string, since we changed the url hash lately
DeltaFile
+4-0src/www/firewall_rule_lookup.php
+4-01 files

OPNSense/core 70d6ccesrc/opnsense/mvc/app/views/OPNsense/Firewall dnat_rule.volt

Change fa icon in the lookup rule reference button in dnat as well for consistency
DeltaFile
+3-3src/opnsense/mvc/app/views/OPNsense/Firewall/dnat_rule.volt
+3-31 files

OPNSense/core 8bbc812src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt

Only show the log search button when row.log is 1 or true
DeltaFile
+19-15src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+19-151 files

OPNSense/core ce83605src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

bootgrid: batch enable/disable-selected, minor update for https://github.com/opnsense/core/pull/9768

This commit changes how rows are collected (use getNodeByReference only for rootnode) to save some cycles, throw an error if someone tries to swap multiple records at once as that is less likely intentional anyway (explicit on/off are acceptable values) and keep simplified result output.
DeltaFile
+32-27src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+32-271 files