From fcef2d65d216f2f43aad98152d6baa5588a5dbb6 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Sat, 16 Apr 2022 00:58:28 +0200 Subject: [PATCH] Firewall: Diagnostics: Aliases - simplify sort and add natural sorting. closes https://github.com/opnsense/core/pull/5716 --- .../Firewall/Api/AliasUtilController.php | 24 ++++++------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php index 89ce81d20..7336176b6 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Firewall/Api/AliasUtilController.php @@ -111,17 +111,6 @@ class AliasUtilController extends ApiControllerBase }); } - if ( - $this->request->hasPost('sort') && - is_array($this->request->getPost('sort')) && - array_key_exists('ip', $this->request->getPost('sort')) && - $this->request->getPost('sort')['ip'] === 'desc' - ) { - rsort($entry_keys); - } else { - sort($entry_keys); - } - $formatted_full = array_map(function ($value) use (&$entries) { $item = ['ip' => $value]; foreach ($entries[$value] as $ekey => $evalue) { @@ -130,15 +119,16 @@ class AliasUtilController extends ApiControllerBase return $item; }, $entry_keys); - if ( - $this->request->hasPost('sort') && - is_array($this->request->getPost('sort')) && - !array_key_exists('ip', $this->request->getPost('sort')) - ) { + if ($this->request->hasPost('sort') && is_array($this->request->getPost('sort'))) { $sortcolumn = array_key_first($this->request->getPost('sort')); $sort_order = $this->request->getPost('sort')[$sortcolumn]; if (!empty(array_column($formatted_full, $sortcolumn))) { - array_multisort(array_column($formatted_full, $sortcolumn), $sort_order == 'asc' ? SORT_ASC : SORT_DESC, $formatted_full); + array_multisort( + array_column($formatted_full, $sortcolumn), + $sort_order == 'asc' ? SORT_ASC : SORT_DESC, + SORT_NATURAL, + $formatted_full + ); } }