wireguard: make the textarea of the generator interactive
This lets the QR code jump a bit on the new peer path, but
also allows updating immediately after typing in the config.
Maybe we can defer the jumpy start a bit until all settings
have been gathered and then start unhiding the QR code.
ui: trigger "h" and "a" shortcuts on all matches
Problem seen on WireGuard and IPsec settings page. Advanced
events were also triggering on all elements on a single click
which meant that they would re-disable on enable on IPsec.
wireguard: FreeBSD 15 no longer allows addresses without netmasks; closes #10746
> The command </sbin/ifconfig 'wg0' 'inet' '10.0.0.2' alias> returned
> exit code 1 and the output was "ifconfig: ERROR: setting interface
> address without mask is no longer supported."
In 0fdb755 we did a similar change for the client side, but left the
server side as is. Since this no longer works in FreeBSD we can simply
tighten the validation instead of trying to guess what FreeBSD ifconfig
would have guessed from the IP address.
Still don't think this was a thing that should have been broken, but
it is what it is.
VPN: Wireguard: preserve peer generator state for existing peers (#10745)
The peer generator was originally designed as a one-shot workflow. Once a
peer had been created, the generated client configuration could no longer be
reconstructed because part of the required state was not retained.
Extend the generator so existing peers can be opened again when their private
key was explicitly stored. Generator defaults that belong to an instance are
kept with that instance, while peer-specific values remain with the peer.
Reference mode reuses the existing peer generator to rebuild the client
configuration and QR code instead of introducing a separate export path.
Private key storage remains opt-in to preserve the existing security and
persistence behavior for users who do not need this functionality.
Expose the peer generator storage in instance and peers so users can change the defaults even without creating a new peer. Since we now have a reference mode, that otherwise would be awkward without implementing two different save actions there.
Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568 (#10740)
Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.
Skip wireless and other advanced settings for now, only implement a minimal set of validations.
system: approximate user being expired in the grid
This would only be correct if the backend gave us a
definitive expired message based on the time zone.
The historic issue is that the expiration no longer
sets disabled, but it's still a useful visual clue.
PR: https://forum.opnsense.org/index.php?topic=52759.0
ui: fix condition to check sidebar toggle loading (#10743)
Changed the sidebar guard from && to || so it aborts when either the CSS
or the navigation element is missing.
Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568
Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.
Skip wireless and other advanced settings for now, only implement a minimal set of validations.
Interfaces: Assignments - add interface configuration settings in new assignments page. for https://github.com/opnsense/core/issues/10568
Refactor NetworkInterface model to reuse existing property names as much as possible, move from/to legacy logic into a custom fieldtype and store all legacy settings in a container named "pending" to ease reconfiguration and updating legacy configurations.
Skip wireless and other advanced settings for now, only implement a minimal set of validations.
Firewall: NAT: Destination NAT: expose automatic rules similar to Source NAT (#10703)
* Firewall: NAT: Destination NAT: expose automatic rules similar to Source NAT
* Firewall: NAT: Destination NAT: include automatic rules in recordset pipeline
* captiveportal.inc rename rdr_port to localport since thats better here
* Ensure getDescription() is called for fields
* firewall: use the new register functions Destination/Static/Source
* firewall: change 'outbound_nat' to 'source_nat' for consistency
* firewall: also change outbound_net now that it is becoming a permanent thing
* firewall: adjust name for destination nat rules too
* captiveportal: restructure the rules generation
[11 lines not shown]
Services: Kea DHCPv4/v6: Remove count badge from GroupBy with static configuration elements, since its unlikely to change and its distracting
(cherry picked from commit 6f6d6fa05ec274a4b3589d33e6e4249a162993c2)