From 59ed22d3393eaebb558321bb7635cd670f7e5463 Mon Sep 17 00:00:00 2001 From: John Crisp Date: Wed, 1 Apr 2020 19:27:19 +0200 Subject: [PATCH] Fix Certificate date sorting --- include/my_functions.php | 13 +++++++++---- include/openssl_functions.php | 3 +++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/include/my_functions.php b/include/my_functions.php index 359c70b..ff8b776 100644 --- a/include/my_functions.php +++ b/include/my_functions.php @@ -74,12 +74,17 @@ function gpvar($v) { # Sort a two multidimensional array by one of it's columns # function csort($array, $column, $ascdec=SORT_ASC){ - if (sizeof($array) == 0) return $array; - foreach($array as $x) $sortarr[]=$x[$column]; - array_multisort($sortarr, $ascdec, $array); + if (sizeof($array) == 0) return $array; - return $array; + // Sort by digital date rather than text date + if ($column == 'issued') $column = "issuedSort"; + if ($column == 'expires') $column = 'expiresSort'; + + foreach($array as $x) $sortarr[]=$x[$column]; + array_multisort($sortarr, $ascdec, $array); + + return $array; } diff --git a/include/openssl_functions.php b/include/openssl_functions.php index cf53d67..7003bf9 100644 --- a/include/openssl_functions.php +++ b/include/openssl_functions.php @@ -362,11 +362,14 @@ function CAdb_explode_entry($dbentry) { // CA_cert_start/enddate // A date will be returned in this format // Feb 27 16:00:09 2020 GMT + // Add a 'digital' sort key for digital date sorting later sscanf(CA_cert_startdate($a[3]),"%s%s%s%s", $mm,$dd,$tt,$yy); $db['issued'] = strftime("%Y-%b-%d", strtotime("$yy-$mm-$dd")); + $db['issuedSort'] = strftime("%Y-%m-%d", strtotime("$yy-$mm-$dd")); sscanf(CA_cert_enddate($a[3]), "%s%s%s%s",$mm,$dd,$tt,$yy); $db['expires'] = strftime("%Y-%b-%d", strtotime("$yy-$mm-$dd")); + $db['expiresSort'] = strftime("%Y-%m-%d", strtotime("$yy-$mm-$dd")); if (time() > strtotime("$yy-$mm-$dd")) { $db['status'] = "Expired";