OPNSense/core 05988fbsrc/opnsense/mvc/app/controllers/OPNsense/Routing GatewayGroupsController.php, src/opnsense/mvc/app/controllers/OPNsense/Routing/Api GroupSettingsController.php SettingsController.php

mvc: style sweep
DeltaFile
+4-3src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/GroupSettingsController.php
+1-2src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/SettingsController.php
+1-1src/opnsense/mvc/app/controllers/OPNsense/Routing/GatewayGroupsController.php
+7-74 files

OPNSense/core f105051src/opnsense/mvc/app/controllers/OPNsense/Routing/Api GroupSettingsController.php, src/opnsense/mvc/app/models/OPNsense/Routing GatewayGroups.php Gateways.php

Gateway Groups: convert to MVC (#10205)

Code performs an inline migration and updates only some callers that directly depended on the old configuration bits. Some convenience functions have been added to GatewayGroups.php to allow for easy configuration access and to satisfy some of the caller demands.

In addition, this code Adjusts the gateway_watcher to now trigger based on Gateway Group trigger level as well, limiting the amount of times alarms/alerts are being generated (and thus potentially unnecessary fw reconfigurations).
DeltaFile
+309-0src/opnsense/mvc/app/models/OPNsense/Routing/GatewayGroups.php
+0-288src/www/system_gateway_groups_edit.php
+0-221src/www/system_gateway_groups.php
+146-0src/opnsense/mvc/app/controllers/OPNsense/Routing/Api/GroupSettingsController.php
+0-120src/opnsense/mvc/app/models/OPNsense/Routing/Gateways.php
+83-0src/opnsense/mvc/app/views/OPNsense/Routing/groups.volt
+538-62915 files not shown
+846-70721 files

OPNSense/core 9eb3158src/etc/inc interfaces.inc, src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Merge remote-tracking branch 'origin/master' into kea-dynamic-poc
DeltaFile
+30-11src/opnsense/www/js/opnsense_bootgrid.js
+8-1src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+2-6src/etc/inc/interfaces.inc
+1-4src/opnsense/mvc/app/views/OPNsense/Diagnostics/routes.volt
+3-2src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+1-3src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+45-279 files not shown
+46-3815 files

OPNSense/core be35c9fsrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: adjust column persistence behavior to prevent horizontal dead space
DeltaFile
+15-0src/opnsense/www/js/opnsense_bootgrid.js
+15-01 files

OPNSense/plugins 4b94d33Mk plugins.mk

make: readlink -f needs an argument
DeltaFile
+1-1Mk/plugins.mk
+1-11 files

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

Firewall: Aliases - add a formatter to show content fields as "dynamic" when populated by other components. closes https://github.com/opnsense/core/issues/10315
DeltaFile
+8-1src/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
+8-11 files

OPNSense/core 4016771src/opnsense/www/js opnsense_bootgrid.js

bootgrid: prevent NaN pagination values for non-ajax grids when row count is set to all
DeltaFile
+1-1src/opnsense/www/js/opnsense_bootgrid.js
+1-11 files

OPNSense/core e014b02src/etc/inc interfaces.inc

interfaces: dhclient.conf doesn't cope with multi-line request/require #10318

This was changed in 26.1.8 for security reasons since it appeared it would,
but the parser only reads the last statement.  Put them back on a single line.
DeltaFile
+2-6src/etc/inc/interfaces.inc
+2-61 files

OPNSense/core 94a084esrc/opnsense/mvc/app/controllers/OPNsense/Interfaces AssignmentController.php, src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api AssignmentController.php

Interfaces: Assignments - work in progress for https://github.com/opnsense/core/issues/9945

In order to migrate the interface assignments, we need to think of a way to use the differently named xml nodes for interfaces (wan, lan, ..) into something that closely resembles a standard model implementation.
Since we can't match these nodes in our statically defined model xmls, the main idea is to flush all via an in-memory model with a separate load [construct] and save hook.
DeltaFile
+79-0src/opnsense/scripts/interfaces/list_assign_options.php
+77-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php
+50-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.php
+45-0src/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt
+40-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/AssignmentController.php
+20-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+311-03 files not shown
+342-09 files

OPNSense/core 0364d3dsrc/opnsense/mvc/app/controllers/OPNsense/Interfaces AssignmentController.php, src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api AssignmentController.php

Interfaces: Assignments - work in progress for https://github.com/opnsense/core/issues/9945

In order to migrate the interface assignments, we need to think of a way to use the differently named xml nodes for interfaces (wan, lan, ..) into something that closely resembles a standard model implementation.
Since we can't match these nodes in our statically defined model xmls, the main idea is to flush all via an in-memory model with a separate load [construct] and save hook.
DeltaFile
+77-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/Api/AssignmentController.php
+48-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.php
+45-0src/opnsense/mvc/app/views/OPNsense/Interface/assignment.volt
+40-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/AssignmentController.php
+10-0src/opnsense/mvc/app/models/OPNsense/Interfaces/Assignment.xml
+8-0src/opnsense/mvc/app/controllers/OPNsense/Interfaces/forms/dialogAssignment.xml
+228-01 files not shown
+234-07 files

OPNSense/plugins 3e46afbsecurity/tinc/src/opnsense/service/templates/OPNsense/Tinc tinc_deploy.xml

tinc: evaluate if hosts enabled (#5447)
DeltaFile
+1-1security/tinc/src/opnsense/service/templates/OPNsense/Tinc/tinc_deploy.xml
+1-11 files

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

Firewall: Rules [new]: Fix automatically generated rules category not being displayed anymore (#10310)
DeltaFile
+3-2src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-21 files

OPNSense/core 21fd3f4src/opnsense/www/js opnsense_bootgrid.js

bootgrid: remove unused getTotalRowCount method
DeltaFile
+0-4src/opnsense/www/js/opnsense_bootgrid.js
+0-41 files

OPNSense/core 5bf5e59src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml, src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Attach a grid formatter to option_data_autocollect to show if options are dynamic
DeltaFile
+7-2src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+2-1src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+9-32 files

OPNSense/core 00d6014src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Validate that domain_search and dns_servers is empty when option_data_autocollect is used.
DeltaFile
+10-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+10-01 files

OPNSense/core 17216fbsrc/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml, src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php KeaDhcpv6.xml

Retrofit an option_data_autocollect in here, but only write parameters into the generated config, not into the persisted configuration. Via this, the DNS server can be automatically pointed to a primary IP address and change at the same time as a dynamic prefix when the hook script is executed.
DeltaFile
+27-3src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+16-5src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+4-0src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.xml
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+47-94 files

OPNSense/core 195667fsrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: safeguard replace function
DeltaFile
+4-0src/opnsense/www/js/opnsense_bootgrid.js
+4-01 files

OPNSense/core 7b3d1b7src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Mark missing option_data_autocollect feature
DeltaFile
+1-3src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+1-31 files

OPNSense/core f5dbc42src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml

Move subnet to logically group dynamic prefix and interface
DeltaFile
+10-10src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+10-101 files

OPNSense/core 412f296src/opnsense/mvc/app/controllers/OPNsense/Kea/forms dialogSubnet6.xml, src/opnsense/mvc/app/views/OPNsense/Kea dhcpv6.volt

Since one interface can have multiple subnets in IPv6 its better to group them via interface. It also helps with dynamic pools since in the same interface you could have a static ULA pool as well.
DeltaFile
+9-4src/opnsense/mvc/app/views/OPNsense/Kea/dhcpv6.volt
+6-6src/opnsense/mvc/app/controllers/OPNsense/Kea/forms/dialogSubnet6.xml
+15-102 files

OPNSense/core f1e2a3csrc/opnsense/www/js opnsense_bootgrid.js

bootgrid: these are state variables, not options
DeltaFile
+6-6src/opnsense/www/js/opnsense_bootgrid.js
+6-61 files

OPNSense/core e0a560asrc/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Fix dynamic pd pool validation, emit calculated prefix lengths to help user
DeltaFile
+21-7src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+21-71 files

OPNSense/core 4a67e91src/opnsense/mvc/app/views/OPNsense/CaptivePortal clients.volt, src/opnsense/mvc/app/views/OPNsense/Dnsmasq leases.volt

ui: clean up useRequestHandlerOnGet usage

This has no use anymore with the current bootgrid code. If a
handler should be overridden, simply defining the function is enough
DeltaFile
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/leases4.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Kea/leases6.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Unbound/overview.volt
+0-1src/opnsense/mvc/app/views/OPNsense/IPsec/connections.volt
+0-1src/opnsense/mvc/app/views/OPNsense/CaptivePortal/clients.volt
+0-1src/opnsense/mvc/app/views/OPNsense/Dnsmasq/leases.volt
+0-62 files not shown
+0-88 files

OPNSense/core d8b07ebsrc/opnsense/mvc/app/views/OPNsense/CaptivePortal vouchers.volt, src/opnsense/mvc/app/views/OPNsense/Diagnostics routes.volt systemactivity.volt

bootgrid: replace 'append' with 'replace' for ajax: false grids

Noticed while documenting.

replaceData() is a lot more performant through Tabulator, and since
there are only 3 callers and all of them expect a clear before
updating any data, use a replace instead.

In time these pages should use the default search endpoint anyway,
but this requires an API change.

make sure to keep the append() function for compatibility
DeltaFile
+1-4src/opnsense/mvc/app/views/OPNsense/Diagnostics/routes.volt
+1-3src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+1-3src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+4-0src/opnsense/www/js/opnsense_bootgrid.js
+7-104 files

OPNSense/core d77b486src/opnsense/mvc/app/models/OPNsense/Kea KeaDhcpv6.php

Only emit NO_LEASES_PLEASE client class conditionally if a non valid prefix exists
DeltaFile
+10-6src/opnsense/mvc/app/models/OPNsense/Kea/KeaDhcpv6.php
+10-61 files

OPNSense/core 41f5cfcsrc/etc/inc interfaces.inc, src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api FilterController.php

Merge remote-tracking branch 'origin/master' into kea-dynamic-poc
DeltaFile
+10-22src/opnsense/www/js/opnsense_bootgrid.js
+12-4src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-13src/opnsense/mvc/app/views/OPNsense/CaptivePortal/vouchers.volt
+6-2src/opnsense/scripts/health/fetchData.py
+4-3src/etc/inc/interfaces.inc
+2-2src/opnsense/mvc/app/views/OPNsense/Diagnostics/systemactivity.volt
+37-466 files not shown
+43-5212 files

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

Newline
DeltaFile
+1-0src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+1-01 files

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

Firewall: Rules [new]: Fix automatically generated rules metadata being accidentally overwritten later
DeltaFile
+3-3src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+3-31 files

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

Firewall: Rules [new] - fix unintended change in filtering logic caused by https://github.com/opnsense/core/commit/c4aefc08f41167b921595cd3f606aadc72b46730

When inspect mode is not selected, only full matches are expected when filtering specific interfaces.
This also means when selecting the inverse of an interface, it automatically belongs to the "floating" group for not being a direct match.

To explain the options a bit better, comments are inserted in the filtereing block.
DeltaFile
+12-6src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
+12-61 files

OPNSense/core ac54d3dsrc/opnsense/scripts/health fetchData.py

Reporting: Health - render NaN as empty values [null] and omit leading empty records from set, closes https://github.com/opnsense/core/issues/10307
DeltaFile
+6-2src/opnsense/scripts/health/fetchData.py
+6-21 files