diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php b/src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php index e753a04ba..7b519c177 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Unbound/Api/SettingsController.php @@ -266,44 +266,6 @@ class SettingsController extends ApiMutableModelControllerBase return $this->toggleBase('aliases.alias', $uuid, $enabled); } - /* Domain overrides */ - - public function searchDomainOverrideAction() - { - return $this->searchBase( - 'domains.domain', - ['enabled', 'domain', 'server', 'description'], - "domain", - null, - SORT_NATURAL | SORT_FLAG_CASE - ); - } - - public function getDomainOverrideAction($uuid = null) - { - return $this->getBase('domain', 'domains.domain', $uuid); - } - - public function addDomainOverrideAction() - { - return $this->addBase('domain', 'domains.domain'); - } - - public function delDomainOverrideAction($uuid) - { - return $this->delBase('domains.domain', $uuid); - } - - public function setDomainOverrideAction($uuid) - { - return $this->setBase('domain', 'domains.domain', $uuid); - } - - public function toggleDomainOverrideAction($uuid, $enabled = null) - { - return $this->toggleBase('domains.domain', $uuid, $enabled); - } - /* ACLs */ public function searchAclAction() diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Unbound/OverridesController.php b/src/opnsense/mvc/app/controllers/OPNsense/Unbound/OverridesController.php index d6fea3426..7584c0fb0 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Unbound/OverridesController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Unbound/OverridesController.php @@ -1,7 +1,7 @@ + * Copyright (C) 2022-2024 Deciso B.V. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -37,6 +37,5 @@ class OverridesController extends IndexController $this->view->pick('OPNsense/Unbound/overrides'); $this->view->formDialogHostOverride = $this->getForm("dialogHostOverride"); $this->view->formDialogHostAlias = $this->getForm("dialogHostAlias"); - $this->view->formDialogDomainOverride = $this->getForm("dialogDomainOverride"); } } diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dialogDomainOverride.xml b/src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dialogDomainOverride.xml deleted file mode 100644 index 3a0ffc311..000000000 --- a/src/opnsense/mvc/app/controllers/OPNsense/Unbound/forms/dialogDomainOverride.xml +++ /dev/null @@ -1,44 +0,0 @@ -
diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php b/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php deleted file mode 100755 index 3c008331a..000000000 --- a/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundDomainField.php +++ /dev/null @@ -1,71 +0,0 @@ -internalValue != null) { - $validators[] = new CallbackValidator([ - "callback" => function ($data) { - if (substr($data, 0, 6) == '_msdcs') { - $subdomain = substr($data, 7); - if (substr($data, 6, 1) != '.' || !Util::isDomain($subdomain)) { - return [gettext("A valid domain must be specified after '_msdcs', prefixed with a dot")]; - } - } elseif (!Util::isDomain($data)) { - return [gettext("A valid domain must be specified")]; - } - return []; - } - ]); - } - - return $validators; - } -} diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundServerField.php b/src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_11.php similarity index 51% rename from src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundServerField.php rename to src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_11.php index 895bc8d21..c139bdcf1 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Unbound/FieldTypes/UnboundServerField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Migrations/M1_0_11.php @@ -1,7 +1,7 @@ internalValue != null) { - $validators[] = new CallbackValidator([ - "callback" => function ($value) { - $parts = explode("@", $value); - if (count($parts) == 2 && (!Util::isIpAddress($parts[0]) || !Util::isPort($parts[1]))) { - return [gettext("A valid IP address and port must be specified, for example 192.168.100.10@5353.")]; - } elseif (count($parts) != 2 && !Util::isIpAddress($value)) { - return [gettext("A valid IP address must be specified, for example 192.168.100.10.")]; - } - return []; + $config = Config::getInstance()->object(); + if (isset($config->OPNsense->unboundplus) && isset($config->OPNsense->unboundplus->domains->domain)) { + foreach ($config->OPNsense->unboundplus->domains->children() as $domain) { + $new_item = $model->dots->dot->Add(); + $new_item->enabled = (string)$domain->enabled; + $new_item->type = 'forward'; + $new_item->domain = (string)$domain->domain; + $parts = explode('@', (string)$domain->server); + $new_item->server = $parts[0]; + if (isset($parts[1])) { + $new_item->port = $parts[1]; } - ]); + } } - return $validators; } } diff --git a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml index 7f4f7852c..9f15e2d1a 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Unbound/Unbound.xml @@ -1,7 +1,7 @@| {{ lang._('ID') }} | -{{ lang._('Enabled') }} | -{{ lang._('Domain') }} | -{{ lang._('IP') }} | -{{ lang._('Description') }} | -{{ lang._('Edit') }} | {{ lang._('Delete') }} | -
|---|---|---|---|---|---|
| - | - - - | -