From f2b161e90d8700c19d92258103c43db6fa426ed6 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Sun, 8 Jul 2018 20:24:53 +0200 Subject: [PATCH] Firewall/alias, add migrations (work in progress), for https://github.com/opnsense/core/issues/1858 --- .../OPNsense/Firewall/Migrations/M1_0_0.php | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php diff --git a/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php b/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php new file mode 100644 index 000000000..9f2a9999c --- /dev/null +++ b/src/opnsense/mvc/app/models/OPNsense/Firewall/Migrations/M1_0_0.php @@ -0,0 +1,83 @@ +object(); + if (!empty($cfgObj->aliases) && !empty($cfgObj->aliases->alias)) { + foreach ($cfgObj->aliases->alias as $alias) { + // find node by name or create a new one, aliases should be unique by name + $node = null; + foreach ($model->aliases->alias->__items as $new_alias) { + if ((string)$new_alias->name == (string)$alias->name) { + $node = $new_alias; + break; + } + } + if ($node === null) { + $node = $model->aliases->alias->Add(); + } + // set alias properties + $node->description = (string)$alias->descr; + $node->name = (string)$alias->name; + $node->type = (string)$alias->type; + if ($alias->url) { + // url content only contains a single item + $node->content = (string)$alias->url; + } elseif ($alias->aliasurl){ + // aliasurl in legacy config could consist of multiple entries + $content = array(); + foreach ($alias->aliasurl as $url) { + $content[] = (string)$url; + } + $node->content = implode("\n", $content); + } elseif ($alias->address){ + // address entries + $node->content = str_replace(" ", "\n", (string)$alias->address); + } + if ($alias->proto) { + $node->proto = (string)$alias->proto; + } + } + // cleanup old config + //unset($cfgObj->aliases); + } + } +}