From 800a2eb06e9908f30ceff9ce0ba52b1eeab01a8c Mon Sep 17 00:00:00 2001 From: Rekryt Date: Sun, 3 Nov 2024 15:10:48 +0300 Subject: [PATCH] feat: add the ability to append command line in mikrotik script --- src/App/Controller/MikrotikController.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/App/Controller/MikrotikController.php b/src/App/Controller/MikrotikController.php index b010b98..a47d3d6 100644 --- a/src/App/Controller/MikrotikController.php +++ b/src/App/Controller/MikrotikController.php @@ -14,6 +14,7 @@ class MikrotikController extends AbstractIPListController { $sites = SiteFactory::normalizeArray($this->request->getQueryParameters()['site'] ?? []); $data = $this->request->getQueryParameter('data') ?? ''; + $append = $this->request->getQueryParameter('append') ?? ''; if ($data == '') { return "# Error: The 'data' GET parameter is required in the URL to access this page"; } @@ -41,7 +42,10 @@ class MikrotikController extends AbstractIPListController { continue; } $filteredItems = array_filter($siteEntity->$data, fn(string $row) => !in_array($row, $entries)); - $items = array_merge($items, $this->generateList($siteEntity, $listName, $filteredItems)); + $items = array_merge( + $items, + $this->generateList($siteEntity, $listName, $filteredItems, $append ? ' ' . $append : '') + ); $entries = array_merge($entries, $filteredItems); } $items = SiteFactory::normalizeArray($items, in_array($data, ['ip4', 'ip6', 'cidr4', 'cidr6'])); @@ -59,10 +63,10 @@ class MikrotikController extends AbstractIPListController { * @param array $array * @return array */ - private function generateList(Site $siteEntity, string $listName, array $array): array { + private function generateList(Site $siteEntity, string $listName, array $array, string $append = ''): array { $items = []; foreach ($array as $item) { - $items[] = 'add list=' . $listName . ' address=' . $item . ' comment=' . $siteEntity->name; + $items[] = 'add list=' . $listName . ' address=' . $item . ' comment=' . $siteEntity->name . $append; } return $items; }