18103 Commits

Author SHA1 Message Date
Monviech
8d6ca1fa98
dnsmasq: Add full dhcp-host support for IPv4 and IPv6 (#8497)
* dnsmasq: Add full dhcp-host support for IPv4 and IPv6

* dnsmasq: Cleanup previous in dnsmasq.inc

* dnsmasq: Change comma placement in template to reduce one condition

* dnsmasq: Add validation to client_id

* dnsmasq: There can be multiple hardware addresses so change label accordingly

* dnsmasq: Change hostname validation so that client_id is also a valid choice without hostname defined.

* dnsmasq: Add validation that prevents duplicate IP addresses in dhcp-host set

* remove one stray newline

* Services: Dnsmasq DNS & DHCP - minor cleanups in https://github.com/opnsense/core/pull/8497

o fix possible race condition in validations
o simplify jinja template

---------

Co-authored-by: Ad Schellevis <ad@opnsense.org>
2025-03-28 19:48:33 +01:00
Ad Schellevis
ad09e7aa6c Services: Unbound DNS: Blocklist - drop "exclude" phrase from log entry as it doesn't make much sense anymore (as a result of aa2cff3e66) 2025-03-28 17:53:39 +01:00
Franco Fichtner
b2dc6fed7c firmware: add cleanup to audits, small refactor to avoid controller repetition; closes #8154 2025-03-28 13:42:13 +01:00
Franco Fichtner
d8ecd8c31b firmware: hook cleanup as hidden "f"lush command in console #8154
Some may argue the hidden commands are not good, but they are really
only to be intended to be called upon request.  None of these things
magically fix firmware updates on their own, but can be useful (and
copying console output into the forum can also be more difficult).
2025-03-28 12:51:50 +01:00
Franco Fichtner
3a9e9edefe pkg: fix plist 2025-03-28 12:20:04 +01:00
Franco Fichtner
433d8d62b3 unbound: model style 2025-03-28 12:19:33 +01:00
Franco Fichtner
51a5118d6e ipsec: pre-shared key permission fix
PR: https://forum.opnsense.org/index.php?topic=46595.0
2025-03-28 12:17:51 +01:00
Franco Fichtner
2774a9b498 firmware: add cleanup script #8154 2025-03-28 09:51:53 +01:00
Ad Schellevis
e4203d81eb Reporting / Insight - cleanup frontend code and move some processing to the backend for easier handling.
Eventually we want to replace the d3 graphs, but before doing that, it's likely a good idea to cleanup the code for readability.
2025-03-27 20:53:28 +01:00
Stephan de Wit
de5dd5f527
bootgrid: resizable columns (#8496) 2025-03-27 16:10:29 +01:00
Franco Fichtner
7fc2ab43a4 dnsmasq: style sweep 2025-03-27 11:29:05 +01:00
Ad Schellevis
a7cb604301 System: Gateways: Group - fix typo in trigger level, loss or latency is actually both combined. 2025-03-27 11:24:55 +01:00
Monviech
92881adb40
firewall/filter: Use fetch_options from opnsense_ui.js to build interface_select selectpicker (#8493)
* firewall/filter: Use fetch_options from opnsense_ui.js to build interface_select selectpicker

* Update src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php

Co-authored-by: Franco Fichtner <franco@opnsense.org>

---------

Co-authored-by: Franco Fichtner <franco@opnsense.org>
2025-03-27 11:23:35 +01:00
Ad Schellevis
d73ec9feae Reporting / Insight - move single_pass to command line parameters for easier debugging 2025-03-27 11:22:33 +01:00
Monviech
8db4e28614
dnsmasq: Add filter function for interfaces and tags with multiselect (#8465)
* dnsmasq: Add filter function for interfaces and tags with multiselect

* dnsmasq: Small cleanup in filter selectpicker previous

* Refactor search actions and tag filtering

- Use single helper function for building filter
- Use tag UUIDs instead of names for filtering
- Avoid building filter functions when filters are empty
- Pass null to searchBase() when no filtering is required
- Use UUID-based filtering for dhcp_tags via record attributes

* dnsmasq: Make tags and interfaces dropdown just a tad nicer

* Services: Dnsmasq DNS & DHCP - cleanups for https://github.com/opnsense/core/pull/8465

simplify recurring pattern for tag search and move select options generation into common jquery function.

---------

Co-authored-by: Ad Schellevis <ad@opnsense.org>
2025-03-26 18:05:00 +01:00
Franco Fichtner
b163c68bf9 backend: restore missing Python module
PR: https://forum.opnsense.org/index.php?topic=46556.0
2025-03-26 15:40:41 +01:00
Franco Fichtner
7dae89eadf system: small audit of auth.inc 2025-03-26 08:55:41 +01:00
Franco Fichtner
fd98874ce7 firewall: use the established "; exit 0" idiom here
Eventually it may be more helpful to have a property such as...

    errors: no
2025-03-26 07:37:42 +01:00
Franco Fichtner
e57aeea3e8 openvpn: whitespace in comment 2025-03-26 07:35:01 +01:00
Ad Schellevis
7f9444f754 Reporting / Insight - remove some unused imports 2025-03-25 21:36:11 +01:00
Franco Fichtner
9fe8d18942 contrib: remove unused
Last seen in legacy RSS widget long gone, noticed by @AdSchellevis
2025-03-25 15:13:52 +01:00
Monviech
46999a32c3
auth/user: Remove styles conflicting with 387c381300 (#8483) 2025-03-25 15:05:38 +01:00
Franco Fichtner
384af7f019 firewall: tweak 2025-03-25 14:40:21 +01:00
Franco Fichtner
8ca6916fd0 system: two minor tweaks 2025-03-25 14:31:36 +01:00
Franco Fichtner
32c9ad3a4a system: minor consolidation on previous 2025-03-25 14:17:24 +01:00
Ad Schellevis
b61f21ae6b System: Gateways: Configuration - move affected gateways into monitor event (introduced monitor_killstates in ff91932d5d) and kill states in 20-recover when configured. for https://github.com/opnsense/core/issues/6803 2025-03-25 13:49:07 +01:00
Monviech
0538ef324e
dnsmasq: Require interface when ra_mode is selected due to ra-param interface requirement. (#8482)
* dnsmasq: Require interface when ra_mode is selected due to ra-param interface requirement. Hide ra-param in dialog when ra_mode is default, since then the global enable_ra defaults are used instead.

* Update src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDHCPrange.xml

Co-authored-by: Franco Fichtner <franco@opnsense.org>

* Update src/opnsense/mvc/app/models/OPNsense/Dnsmasq/Dnsmasq.php

Co-authored-by: Franco Fichtner <franco@opnsense.org>

* Update src/opnsense/mvc/app/views/OPNsense/Dnsmasq/settings.volt

Co-authored-by: Franco Fichtner <franco@opnsense.org>

---------

Co-authored-by: Franco Fichtner <franco@opnsense.org>
2025-03-25 11:48:12 +01:00
cd3c2eefd2
system: add comments to OpenVPN widget for #8476 (#8480) 2025-03-25 07:01:40 +01:00
Stephan de Wit
370fdcffcb system: set senderr_demotion_factor to 0, fixes https://github.com/opnsense/core/issues/8437 2025-03-24 15:59:13 +01:00
cs-1
2422686fad
Display OpenVPN virtual IPv6 addresses for OpenVPN clients in dashboard widget (#8476)
* Display OpenVPN virtual IPv6 addresses for OpenVPN clients

* Check for virtual IPv6 address

* Filtering client vars and join them

* Revert "Filtering client vars and join them"

This reverts commit 8914b39d82ebc50656884172c290d8e8db7a1137.

* Moved logic

* Revert "Moved logic"

This reverts commit c66182871031c64d938bc70bf4d0c57f00634c28.

* Moved ip address list logic

---------

Co-authored-by: lucaspalomodevelop <lucas.palomo@t-online.de>
2025-03-24 13:19:14 +01:00
Stephan de Wit
fb7567bdc7 bootgrid: keep track of empty resultset and minor cleanup 2025-03-24 12:38:34 +01:00
Stephan de Wit
463ba12997
bootgrid: improve UX and extend bootgrid behavior (#8462)
Added options:

- `columnSelectForceReload` (default false). Changes current behavior for all bootgrids (currently adding a new column re-fetches the data, which is unnecessary in most cases). Caches response internally, thereby assuming the data for a newly added column is already present.
- `headerFormatters` object. Can be explicitly set via `data-headerFormatter-<identifier>` or implicitly linked via the row id.
- `setColumns` function (`grid.bootgrid("setColumns", ['colA', 'colB' ...])`). Marks passed columns for addition. Requires either a `reload` or `softreload` to apply.
- `unsetColumns` function (`grid.bootgrid("unsetColumns", ['colA', 'colB' ...])`). Marks passed columns for removal. Requires either a `reload` or `softreload` to apply.
- `softreload` function (`grid.bootgrid("softreload")`).

UX changes:

- `headerFormatters` now makes sure that if column headers require styling, the styling doesn't flash and is applied from the beginning / during reloads.
- The "Loading..." status has been replaced with a transparent overlay containing a spinner. This prevents unnecessary style flashing when data is reloaded, i.e. when scrolling through pages, setting columns, forced refreshes etc.
- Added "reset to defaults" button, resetting the sort, visiblity and rowcount options to the controller defaults (removes them from localstorage).

Fixes https://github.com/opnsense/core/issues/8457
2025-03-24 11:26:22 +01:00
Franco Fichtner
eef688c3f6 dnsmasq: syle sweep 2025-03-23 21:29:40 +01:00
Ad Schellevis
1afede2677 Reporting / Insight - minor code cleanups, remove final user of old parameter parser (params.py) as well. 2025-03-23 20:05:10 +01:00
Monviech
00921f6b3e
dnsmasq: Add internalModelUseSafeDelete to prevent deletion of currently used tags (#8468) 2025-03-22 15:50:52 +01:00
Monviech
7194c9ba34
dnsmasq: Adjust filter on interface field so group interfaces are filtered (#8464) 2025-03-22 10:33:50 +01:00
Ad Schellevis
84f48985bf Services: Unbound DNS: Overrides - add optional TTL field, closes https://github.com/opnsense/core/pull/7616 2025-03-22 10:30:37 +01:00
Monviech
01f364e1bd
dnsmasq: Add router advertisement options (#8449)
* dnsmasq: Add router advertisement options

* dnsmasq: Add router advertisement options

* dnsmasq: Add router advertisement options, fix small issue with spurious newline

* dnsmasq: Selectively show and hide dhcpv4 and dhcpv6 related options without introducing a new selectpicker. Since the validation in dnsmasq.php uses : to determine IPv6, the front end behaves the same.

* dnsmasq: Fix small style issue in previous

* dnsmasq: Since router advertisements are not opt-out per dhcpv6 range, it makes more sense not to enable it implicitely, but explicitely as global option.

* dnsmasq: Add validation for ra_mode, fix template spot of ra_mode, improve help text

* dnsmasq: Clear helptext up regarding SLAAC and prefix length. Template ignores this by default when ra is enabled.

* dnsmasq: Fix terminology of ra-param and add MTU option for feature completeness

* Update src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDHCPrange.xml

Co-authored-by: Franco Fichtner <franco@opnsense.org>

* Update src/opnsense/mvc/app/controllers/OPNsense/Dnsmasq/forms/dialogDHCPrange.xml

Co-authored-by: Franco Fichtner <franco@opnsense.org>

---------

Co-authored-by: Franco Fichtner <franco@opnsense.org>
2025-03-21 08:52:16 +01:00
Monviech
fcd49fc603
dnsmasq: Add DHCPv6 options (#8456) 2025-03-21 07:52:18 +01:00
Ad Schellevis
d4a8efd1b4 ACL: prefer ui/user_portal above system_usermanager_passwordmg.php 2025-03-20 19:51:25 +01:00
Franco Fichtner
ec634601fe radvd: move plugin code to its own space #8351 2025-03-20 10:10:18 +01:00
Monviech
c9347fe0d4
dnsmasq: Change dhcptags position in menu to align with c9b1af5eb8 (#8461) 2025-03-20 09:46:45 +01:00
Franco Fichtner
4ee03f9c43 interfaces: refactor previous to use system_sysctl_get()
That way we only get the value and perhaps even the default if
we should ever need it.
2025-03-20 09:18:38 +01:00
Stephan de Wit
90d35e75f8 git: ignore vscode 2025-03-20 08:19:31 +01:00
Franco Fichtner
c1e601f8cb firewall: zap 2025-03-20 08:18:10 +01:00
Ad Schellevis
c48d393d33 System: Configuration: Backups - change message when no files are returned by the remote host, for https://github.com/opnsense/plugins/pull/4602 2025-03-19 22:01:23 +01:00
Stephan de Wit
4eca08abb7 captive portal: note can be removed 2025-03-19 14:40:13 +01:00
Stephan de Wit
8bd35fe138 radius: use Mesage Authenticator by default (https://github.com/opnsense/core/issues/7983) 2025-03-19 14:23:32 +01:00
Stephan de Wit
9c68e2eb3c firewall: automation: correct check order
ErrorException: Undefined array key "interface" in /usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php:154
2025-03-19 12:53:14 +01:00
Stephan de Wit
ab48c5afb6
radius: improved RFC alignment (#8458)
- Adds proper Termination Cause handling, requires addition of `delete_reason` column in the captiveportal sqlite database.
- Implements `Acct-Input|Output-Gigawords` accounting handling (Fixes https://github.com/opnsense/core/issues/6712)
- implements `Called|Calling-Station-Id`. (Fixes https://github.com/opnsense/core/issues/7844)
	- `Called-Station-Id` implemented via additional optional input field
	- `Calling-Station-Id` requires an extra preauth hook, which in general is useful to handle per-session authentication properties.
- While here, silence output of pf during state kills when client is disconnected
- `NAS-IP-Address` isn't added, RFC2865 states it should be either `NAS-Identifier` of `NAS-IP-Address`.

Since it touches this area, perhaps we can remove the deprecated `$zoneid` param in the captive portal SessionController.
2025-03-19 10:07:16 +01:00