From 04753cf4c570df995fa135c653b8735265c51094 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=B4me=20Chilliet?= <come@opensides.be>
Date: Wed, 4 Oct 2017 16:47:00 +0200
Subject: [PATCH] :ambulance: fix(dashboard): Sort entries in expired list

Sort users by expiration date and username in users dashboard

closes #5703
---
 .../addons/dashboard/class_dashBoardUsers.inc  | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/plugins/addons/dashboard/class_dashBoardUsers.inc b/plugins/addons/dashboard/class_dashBoardUsers.inc
index 1a7aa87e5..494db21c7 100644
--- a/plugins/addons/dashboard/class_dashBoardUsers.inc
+++ b/plugins/addons/dashboard/class_dashBoardUsers.inc
@@ -167,6 +167,9 @@ class dashboardUsers extends simplePlugin
       }
     }
 
+    uasort($expired_accounts, array('dashboardUsers','compareUsers'));
+    uasort($next_expired_accounts, array('dashboardUsers','compareUsers'));
+
     return array(
       'columns'             => $this->expiredAccountsColumns,
       'accounts'            => $expired_accounts,
@@ -208,5 +211,20 @@ class dashboardUsers extends simplePlugin
       'expirationDate'  => $human_shadowExpire,
     );
   }
+
+  static function compareUsers ($a, $b)
+  {
+    if ($a['expirationDate'] < $b['expirationDate']) {
+      return -1;
+    } elseif ($a['expirationDate'] > $b['expirationDate']) {
+      return 1;
+    } elseif ($a['uid'] < $b['uid']) {
+      return -1;
+    } elseif ($a['uid'] > $b['uid']) {
+      return 1;
+    } else {
+      return 0;
+    }
+  }
 }
 ?>
-- 
GitLab