diff --git a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/Api/SettingsController.php b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/Api/SettingsController.php index 2d5e095c1..3700ff45a 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/Api/SettingsController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/Api/SettingsController.php @@ -247,7 +247,8 @@ class SettingsController extends ApiMutableModelControllerBase { return $this->searchBase( "rules.rule", - array("interface", "proto", "source_not","source", "destination_not", "destination", "description", "origin", "sequence", "target"), + array("enabled", "interface", "proto", "source_not","source", "destination_not", + "destination", "description", "origin", "sequence", "target"), "sequence" ); } @@ -304,4 +305,17 @@ class SettingsController extends ApiMutableModelControllerBase { return $this->delBase("rules.rule", $uuid); } + + /** + * Toggle rule defined by uuid (enable/disable) + * @param $uuid user defined rule internal id + * @param $enabled desired state enabled(1)/disabled(1), leave empty for toggle + * @return array save result + * @throws \Phalcon\Validation\Exception when field validations fail + * @throws \ReflectionException when not bound to model + */ + public function toggleRuleAction($uuid, $enabled = null) + { + return $this->toggleBase("rules.rule", $uuid, $enabled); + } } diff --git a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogRule.xml b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogRule.xml index 24e053002..957373448 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogRule.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/TrafficShaper/forms/dialogRule.xml @@ -1,4 +1,10 @@