diff --git a/plist b/plist
index 2df05c1b2..90f15c8d6 100644
--- a/plist
+++ b/plist
@@ -292,11 +292,21 @@
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/CategoryController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterBaseController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/FilterUtilController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/GroupController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/NptController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/SourceNatController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/CategoryController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/FilterController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/GroupController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/NptController.php
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/SourceNatController.php
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/categoryEdit.xml
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogFilterRule.xml
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogNptRule.xml
+/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/dialogSNatRule.xml
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/geoIPSettings.xml
/usr/local/opnsense/mvc/app/controllers/OPNsense/Firewall/forms/groupEdit.xml
/usr/local/opnsense/mvc/app/controllers/OPNsense/IDS/Api/ServiceController.php
@@ -589,6 +599,7 @@
/usr/local/opnsense/mvc/app/models/OPNsense/Diagnostics/Traceroute.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Dnsmasq/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Dnsmasq/Menu/Menu.xml
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Alias.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Alias.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Category.php
@@ -596,12 +607,19 @@
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/AliasContentField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/AliasField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/AliasNameField.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/FilterRuleField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/GroupField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/GroupNameField.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/InterfaceField.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/FieldTypes/SourceNatRuleField.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Filter.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Group.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Group.xml
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Menu/Menu.xml
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/MFP1_0_0.php
+/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/MFP1_0_3.php
/usr/local/opnsense/mvc/app/models/OPNsense/Firewall/static_aliases/core.json
/usr/local/opnsense/mvc/app/models/OPNsense/IDS/ACL/ACL.xml
/usr/local/opnsense/mvc/app/models/OPNsense/IDS/FieldTypes/PolicyContentField.php
@@ -748,6 +766,7 @@
/usr/local/opnsense/mvc/app/views/OPNsense/Firewall/alias.volt
/usr/local/opnsense/mvc/app/views/OPNsense/Firewall/alias_util.volt
/usr/local/opnsense/mvc/app/views/OPNsense/Firewall/category.volt
+/usr/local/opnsense/mvc/app/views/OPNsense/Firewall/filter.volt
/usr/local/opnsense/mvc/app/views/OPNsense/Firewall/group.volt
/usr/local/opnsense/mvc/app/views/OPNsense/IDS/index.volt
/usr/local/opnsense/mvc/app/views/OPNsense/IDS/policy.volt
@@ -1015,6 +1034,8 @@
/usr/local/opnsense/scripts/openvpn/ovpn_status.py
/usr/local/opnsense/scripts/openvpn/tls_verify.php
/usr/local/opnsense/scripts/openvpn/user_pass_verify.php
+/usr/local/opnsense/scripts/pfplugin/rollback_cancel
+/usr/local/opnsense/scripts/pfplugin/rollback_timer
/usr/local/opnsense/scripts/routes/del_route.py
/usr/local/opnsense/scripts/routes/gateway_status.php
/usr/local/opnsense/scripts/routes/gateway_watcher.php
@@ -1098,6 +1119,7 @@
/usr/local/opnsense/service/conf/actions.d/actions_netflow.conf
/usr/local/opnsense/service/conf/actions.d/actions_openssh.conf
/usr/local/opnsense/service/conf/actions.d/actions_openvpn.conf
+/usr/local/opnsense/service/conf/actions.d/actions_pfplugin.conf
/usr/local/opnsense/service/conf/actions.d/actions_syslog.conf
/usr/local/opnsense/service/conf/actions.d/actions_system.conf
/usr/local/opnsense/service/conf/actions.d/actions_template.conf
@@ -1983,8 +2005,6 @@
/usr/local/www/firewall_nat_1to1.php
/usr/local/www/firewall_nat_1to1_edit.php
/usr/local/www/firewall_nat_edit.php
-/usr/local/www/firewall_nat_npt.php
-/usr/local/www/firewall_nat_npt_edit.php
/usr/local/www/firewall_nat_out.php
/usr/local/www/firewall_nat_out_edit.php
/usr/local/www/firewall_rule_lookup.php
diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
index e2c7d9f87..b456bd3d8 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
+++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/BaseListField.php
@@ -28,7 +28,7 @@
namespace OPNsense\Base\FieldTypes;
-use \Phalcon\Filter\Validation\Validator\InclusionIn;
+use Phalcon\Filter\Validation\Validator\InclusionIn;
use OPNsense\Base\Validators\CsvListValidator;
/**
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
index e33e4b926..a9fb6c4b5 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Filter.xml
@@ -33,7 +33,6 @@
Y
- N
Y
Y
@@ -67,7 +66,6 @@
Y
- N
Y
Y
Y
@@ -83,14 +81,12 @@
Y
- N
Y
Y
Y
Please specify a valid portnumber, name, alias or range
- N
interface gateways list
/tmp/gateway_list.json
20
@@ -112,8 +108,7 @@
Related category not found.
- N
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
+ /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
Description should be a string between 1 and 255 characters
@@ -161,7 +156,6 @@
Y
- N
Y
Y
Y
@@ -176,7 +170,6 @@
Y
- N
Y
Y
Y
@@ -187,7 +180,6 @@
Y
- N
Y
Y
@@ -207,8 +199,7 @@
Related category not found.
- N
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
+ /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
Description should be a string between 1 and 255 characters
@@ -260,8 +251,7 @@
Related category not found.
- N
- /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
+ /^([\t\n\v\f\r 0-9a-zA-Z.\-,_\x{00A0}-\x{FFFF}]){0,255}$/u
Description should be a string between 1 and 255 characters
diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/MFP1_0_3.php b/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/MFP1_0_3.php
index 220d44570..4284a5949 100644
--- a/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/MFP1_0_3.php
+++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/MFP1_0_3.php
@@ -45,7 +45,8 @@ class MFP1_0_3 extends BaseModelMigration
$catmdl = new Category();
foreach ((Config::getInstance()->object())->nat->children() as $child) {
if ($child->getName() == 'npt') {
- if (Util::isSubnet((string)$child->source->address) && (
+ if (
+ Util::isSubnet((string)$child->source->address) && (
empty((string)$child->destination->address) ||
Util::isSubnet((string)$child->destination->address))
) {
diff --git a/src/opnsense/mvc/app/models/OPNsense/IDS/FieldTypes/PolicyRulesField.php b/src/opnsense/mvc/app/models/OPNsense/IDS/FieldTypes/PolicyRulesField.php
index a1b8d4d5c..bccd4b136 100644
--- a/src/opnsense/mvc/app/models/OPNsense/IDS/FieldTypes/PolicyRulesField.php
+++ b/src/opnsense/mvc/app/models/OPNsense/IDS/FieldTypes/PolicyRulesField.php
@@ -34,7 +34,6 @@ use OPNsense\Base\FieldTypes\ArrayField;
use OPNsense\Base\FieldTypes\TextField;
use OPNsense\Core\Backend;
-
class PolicyRulesField extends ArrayField
{
protected static $internalRuleData = null;