OPNSense/core 52a2deasrc/opnsense/mvc/app/library/OPNsense/Core Config.php

config: ignore future backups when they exist, closes https://github.com/opnsense/core/issues/9802

Although this is quite uncommon, having a machine with its clock set in the future for some time may leave backups that prevent future backups being made (because of the configured number of backups).
Usually diskspace is not really an issue and just removing future backups without knowing what the actual time is has downsides too, so lets leave them there and ignore them to warrant normal operation.
DeltaFile
+8-1src/opnsense/mvc/app/library/OPNsense/Core/Config.php
+8-11 files

OPNSense/core e5e6387src/opnsense/scripts/filter/lib states.py

Firewall: Diagnostics: States - minor glitch in searching, when no specific networks are selected, match all and offered filter. closes https://github.com/opnsense/core/issues/9876
DeltaFile
+3-1src/opnsense/scripts/filter/lib/states.py
+3-11 files

OPNSense/core c8cd556src/opnsense/service/modules/actions script_output.py

configd: remove constant cleanups as they may influence requests from other threads executing different commands. As the file operations are already locked, we can simply trust these and close https://github.com/opnsense/core/issues/9864

In theory we might require a bit more temp space by not removing the already executed commands, but in practice that's likely not a huge issue.
If we would like to cleanup periodically, we would require the communication to stall for a bit when performing these cleanups on cached commands or flush their contents instead of removing them (so we can lock the files in the process). For now we assume the amount of cached commands is not very large and their content is managable.
DeltaFile
+6-10src/opnsense/service/modules/actions/script_output.py
+6-101 files

OPNSense/core 9dffcbdsrc/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api FirewallController.php

Firewall: Diagnostics: States - replacement of SanitizeFilter() seems to have killed our state network lookup, strings should be safe to pass here, closes https://github.com/opnsense/core/issues/9876
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/FirewallController.php
+1-11 files

OPNSense/core 71cf8c0src/opnsense/mvc/app/models/OPNsense/Core/ACL ACL.xml

Firewall: NAT: Destination NAT - update ACL to match at least our menu entry, closes https://github.com/opnsense/core/issues/9871
DeltaFile
+1-1src/opnsense/mvc/app/models/OPNsense/Core/ACL/ACL.xml
+1-11 files

OPNSense/core 8cc3418src/opnsense/scripts/shell restore.sh

shell: make a note here otherwise done
DeltaFile
+2-0src/opnsense/scripts/shell/restore.sh
+2-01 files

OPNSense/core c847661. plist, src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor dhcpd.php README

interfaces: move dhcpd neighbor entry feed to plugin

(cherry picked from commit adf02f8359b902594da4eb56c1b8c84d5bb51a85)
DeltaFile
+0-58src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor/dhcpd.php
+1-1plist
+1-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor/README
+2-593 files

OPNSense/core adf02f8. plist, src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor dhcpd.php README

interfaces: move dhcpd neighbor entry feed to plugin
DeltaFile
+0-58src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor/dhcpd.php
+1-1plist
+1-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Neighbor/README
+2-593 files

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

mvc: sweep

(cherry picked from commit 6bd41d3e18263629d414fc542439a3d1c8f354f6)
DeltaFile
+1-1src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+1-11 files

OPNSense/core 5f2ba48src/etc/inc filter.lib.inc, src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php DNatController.php

Firewall: Rules [new] - default ipprotocol mismatch, when not specified, both are indicated

PR: https://github.com/opnsense/core/issues/9858

(cherry picked from commit d348a53d03f54b3b1429b7b61daf1b67adf3486d)
(cherry picked from commit ab7e80abe1cd4b6d4b4822a09606530f9df27766)
(cherry picked from commit 0c3a937cccc478285f2360ad9526bd29abc9be5e)
(cherry picked from commit c7a8884a2a97034e625edcf3dd90ee76bba99d28)
DeltaFile
+4-4src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-0src/etc/inc/filter.lib.inc
+1-2src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/DNatController.php
+1-1src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+0-1src/opnsense/scripts/filter/list_non_mvc_rules.php
+1-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
+10-86 files

OPNSense/core a36b6f1src/opnsense/mvc/app/views/OPNsense/Diagnostics log.volt, src/opnsense/www/js opnsense_bootgrid.js

log files: fix 'go to page' edge case and row count persistence/max

The log controller defines 5000 rows as the limit to prevent OOM
issues, however, since the front-end knows nothing about this,
setting the row count to "all" will only show the first
5000 result without a way to paginate, even if there are more
log entries. Logically, if the controller defines 5000 as a limit,
the view shouldn't allow "all" as a selection, so override it here.

Furthermore, row count "all" was a boolean, which broke the "go to page"
button. While "all" isn't allowed anymore now, we should check
if the value is a boolean regardless. Also, the grid wasn't
indexing on "rnum" properly, so the grid had no idea where to scroll
to once clicked.

(cherry picked from commit 13f45bca921f66b3ecba731b701a8f63e99ddd0e)
DeltaFile
+6-2src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt
+2-1src/opnsense/www/js/opnsense_bootgrid.js
+8-32 files

OPNSense/core a9cf88fsrc/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt, src/www firewall_rule_lookup.php

Firewall: Rules [new]: Reduce complexity in url hash handling and when using firewall_rule_lookup (#9773)

* 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

* Clean up URL hash logic, we only allow #search and #interface now and need no special handling

* Only get the hash once, use it everywhere, re-add missing null fallback and initialized interface variable

* The hash was consumed too early now, fix it by shifting to the new spot where the variable is used last

(cherry picked from commit d976ae7b6b0f06c235d22de087e4904c28b1286c)
DeltaFile
+7-17src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+1-12src/www/firewall_rule_lookup.php
+8-292 files

OPNSense/core 903c250. plist, src/opnsense/mvc/app/controllers/OPNsense/Base ApiMutableModelControllerBase.php

mvc: collect uuid field so it can be searched, but only if the searchPhrase contains a valid UUID (#9780)

(cherry picked from commit 7738d7e865025022035025c8b65578a57c94feab)
(cherry picked from commit 6ae73e8406b83c92630a184884707a0b92c949b3)
DeltaFile
+58-0src/opnsense/mvc/app/library/OPNsense/Core/Type.php
+17-9src/opnsense/mvc/app/library/OPNsense/Base/UIModelGrid.php
+11-14src/opnsense/mvc/app/controllers/OPNsense/Base/ApiMutableModelControllerBase.php
+3-2src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php
+1-0plist
+90-255 files

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

Firewall: Rules [new]: Move download and upload commands out of partial into global commands (#9781)

(cherry picked from commit d5a50a98c21eb592348cfb293986f3f0c06906aa)
DeltaFile
+27-23src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+27-231 files

OPNSense/core 23440edsrc/opnsense/mvc/app/views/OPNsense/Diagnostics fw_log.volt, src/opnsense/mvc/app/views/OPNsense/Firewall filter_rule.volt dnat_rule.volt

Firewall: Rules [new]: Add a command button to open the live log with prefilled rule ID (#9770)

fw_log.volt:
Uses a url hash inside fw_log.volt to set a filter when opening it through a link from filter_rule.volt
The url hash can set any type of a single filter, so it can be reused in other pages as well.
Combine entry point of addCombinedFilter and addFilter, decide via array in field what type it is.
Change init entrypoint to always go through the filterChange() pipeline, but have a fast path in there that initializes without a filter. This adds the filter immediately when loading with the page with the URL hash
Make sure we want for tableBuilt to prevent replaceData errors

filter_rule.volt
Only show the log search button when row.log is 1 or true
Change fa icon in the lookup rule reference button in dnat as well for consistency
Use URLSearchParams()

---------

Co-authored-by: Stephan de Wit <stephan.de.wit at deciso.com>
(cherry picked from commit 63e0b92278ad4c5e4b0db9746599903089bf14dd)
DeltaFile
+30-24src/opnsense/mvc/app/views/OPNsense/Diagnostics/fw_log.volt
+36-17src/opnsense/mvc/app/views/OPNsense/Firewall/filter_rule.volt
+3-3src/opnsense/mvc/app/views/OPNsense/Firewall/dnat_rule.volt
+69-443 files

OPNSense/core 7c949c7src/opnsense/mvc/app/library/OPNsense/Core Config.php, src/opnsense/mvc/tests/app/models/OPNsense/ACL/AclConfig config.xml

system: avoid using "(system)", revision match between legacy and mvc

(cherry picked from commit 95bfad28926ef4dad32d385e41b8e252eeec6d52)
DeltaFile
+2-1src/opnsense/mvc/app/library/OPNsense/Core/Config.php
+1-1src/www/authgui.inc
+1-1src/opnsense/mvc/tests/app/models/OPNsense/ACL/AclConfig/config.xml
+4-33 files

OPNSense/core 95bfad2src/opnsense/mvc/app/library/OPNsense/Core Config.php, src/opnsense/mvc/tests/app/models/OPNsense/ACL/AclConfig config.xml

system: avoid using "(system)", revision match between legacy and mvc
DeltaFile
+2-1src/opnsense/mvc/app/library/OPNsense/Core/Config.php
+1-1src/opnsense/mvc/tests/app/models/OPNsense/ACL/AclConfig/config.xml
+1-1src/www/authgui.inc
+4-33 files

OPNSense/core 4a2e001src/opnsense/scripts/shell restore.sh

shell: fix cmp/diff
DeltaFile
+1-1src/opnsense/scripts/shell/restore.sh
+1-11 files

OPNSense/core b86049asrc/opnsense/scripts/shell restore.sh

shell: almost got it right
DeltaFile
+1-1src/opnsense/scripts/shell/restore.sh
+1-11 files

OPNSense/core 0d9c07esrc/opnsense/scripts/shell restore.sh

shell: for beauty context
DeltaFile
+6-1src/opnsense/scripts/shell/restore.sh
+6-11 files

OPNSense/core a59a43fsrc/opnsense/scripts/shell restore.sh

shell: add notes correctly
DeltaFile
+7-2src/opnsense/scripts/shell/restore.sh
+7-21 files

OPNSense/core abf3aa8src/opnsense/scripts/shell restore.sh

shell: wrong path
DeltaFile
+1-1src/opnsense/scripts/shell/restore.sh
+1-11 files

OPNSense/core 03695ffsrc/opnsense/scripts/shell restore.sh

shell: print description if possible
DeltaFile
+5-3src/opnsense/scripts/shell/restore.sh
+5-31 files

OPNSense/core 5c3dc33src/opnsense/scripts/shell restore.sh

shell: more tweaks
DeltaFile
+11-2src/opnsense/scripts/shell/restore.sh
+11-21 files

OPNSense/core 5c6d69dsrc/opnsense/scripts/shell restore.sh

shell: small mods
DeltaFile
+2-4src/opnsense/scripts/shell/restore.sh
+2-41 files

OPNSense/core 2e06b86src/opnsense/scripts/shell restore.sh

shell: add a diff review step to config restore
DeltaFile
+23-2src/opnsense/scripts/shell/restore.sh
+23-21 files

OPNSense/core 49419d7src/etc/inc/plugins.inc.d radvd.inc

radvd: use safe config array iteration over virtual IPs
DeltaFile
+2-2src/etc/inc/plugins.inc.d/radvd.inc
+2-21 files

OPNSense/core 1ecef4csrc/etc/inc auth.inc, src/opnsense/mvc/app/controllers/OPNsense/Auth/Api UserController.php

system: unify pwd_changed_at usage

Remove requirement to configure password_policy_length and update the
timestamp via console and admin pages as well.

PR: https://github.com/opnsense/core/issues/9857

(cherry picked from commit 4010090656779774532b54f7430049279f44cb37)
DeltaFile
+1-8src/www/system_usermanager_passwordmg.php
+2-1src/etc/inc/auth.inc
+1-0src/opnsense/mvc/app/controllers/OPNsense/Auth/Api/UserController.php
+4-93 files

OPNSense/core 7326b42src/etc/inc config.inc

system: create a backup on factory reset

This way we can see all the migrations taking place instead of hiding
them by squashing them into the first backup.  This is very important
for image testing as 26.1 taught us.

(cherry picked from commit da4fbf7ee942d6ce0e7b0a475b4d20577dd37183)
DeltaFile
+1-1src/etc/inc/config.inc
+1-11 files

OPNSense/core da4fbf7src/etc/inc config.inc

system: create a backup on factory reset

This way we can see all the migrations taking place instead of hiding
them by squashing them into the first backup.  This is very important
for image testing as 26.1 taught us.
DeltaFile
+1-1src/etc/inc/config.inc
+1-11 files