From befb891174d9a8b6bba400241984499221e487e4 Mon Sep 17 00:00:00 2001 From: Richard Underwood Date: Thu, 25 Aug 2016 10:23:31 +0100 Subject: [PATCH] Changed Download logs to download the logs currently being shown, not always the current logs - note, doesn't filter first. Removed "delete" case in logs.php Moved logging check out of case statements to avoid duplication. Changed wording of clear logs warning. Pretty-print the JSON on log export - requires PHP 5.4. --- index.php | 6 +-- logs.php | 131 +++++++++++++++++++++++++++--------------------------- 2 files changed, 69 insertions(+), 68 deletions(-) diff --git a/index.php b/index.php index 5b9c368..87d65fd 100644 --- a/index.php +++ b/index.php @@ -114,7 +114,7 @@ if ($blocklogin === TRUE) {
@@ -1121,13 +1121,13 @@ $(document).ready(function () { icon: 'img/export.png', text: 'Download logs', click: function () { - var $zexport = $.get("logs.php?action=export", function(data) { + var $zexport = $.get("logs.php?action=export&logfile=" + $('#logfile').val(), function(data) { console.log(data); blob = new Blob([data], { type: 'text/plain' }); var dl = document.createElement('a'); dl.addEventListener('click', function(ev) { dl.href = URL.createObjectURL(blob); - dl.download = 'nseditlogs.txt'; + dl.download = $('#logfile').val() == "" ? 'nseditlogs.txt':$('#logfile').val() + ".txt"; }, false); if (document.createEvent) { diff --git a/logs.php b/logs.php index 816ef3e..1d2a362 100644 --- a/logs.php +++ b/logs.php @@ -20,72 +20,73 @@ if (!isset($_GET['action'])) { jtable_respond(null, 'error', 'No action given'); } -switch ($_GET['action']) { +if ($logging !== TRUE) { + jtable_respond(null, 'error', 'Logging is disabled'); +} else { + switch ($_GET['action']) { + + case "list": + if(!empty($_POST['logfile'])) { + if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_POST['logfile']) == 1) { + $entries=json_decode(file_get_contents($logsdirectory . "/" . $_POST['logfile']),true); + } else { + jtable_respond(null, 'error', "Can't find log file"); + break; + } + } else { + $entries=getlogs(); + } -case "list": - global $logging; - if ($logging !== TRUE) { - jtable_respond(null, 'error', 'Logging is disabled'); + if(!empty($_POST['user'])) { + $entries=array_filter($entries, + function ($val) { + return(stripos($val['user'], $_POST['user']) !== FALSE); + } + ); + } + + if(!empty($_POST['entry'])) { + $entries=array_filter($entries, + function ($val) { + return(stripos($val['log'], $_POST['entry']) !== FALSE); + } + ); + } + + jtable_respond($entries); + break; + + case "export": + if(!empty($_GET['logfile'])) { + if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_GET['logfile']) == 1) { + $entries=json_decode(file_get_contents($logsdirectory . "/" . $_GET['logfile']),true); + } else { + jtable_respond(null, 'error', "Can't find log file"); + break; + } + } else { + $entries=getlogs(); + } + + print json_encode($entries,JSON_PRETTY_PRINT); + break; + + case "clear": + if($allowclearlogs === TRUE) { + clearlogs(); + } else { + jtable_respond(null, 'error', 'Invalid action'); + } + break; + case "rotate": + if($allowrotatelogs === TRUE) { + rotatelogs(); + } else { + jtable_respond(null, 'error', 'Invalid action'); + } + break; + default: + jtable_respond(null, 'error', 'Invalid action'); break; } - - if(!empty($_POST['logfile'])) { - if(preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}-[0-9]{6}\.json/',$_POST['logfile']) == 1) { - $entries=json_decode(file_get_contents($logsdirectory . "/" . $_POST['logfile']),true); - } else { - jtable_respond(null, 'error', "Can't find log file"); - break; - } - } else { - $entries=getlogs(); - } - - if(!empty($_POST['user'])) { - $entries=array_filter($entries, - function ($val) { - return(stripos($val['user'], $_POST['user']) !== FALSE); - } - ); - } - - if(!empty($_POST['entry'])) { - $entries=array_filter($entries, - function ($val) { - return(stripos($val['log'], $_POST['entry']) !== FALSE); - } - ); - } - - jtable_respond($entries); - break; - -case "delete": - if ($emailaddress != '' and delete_user($emailaddress) !== FALSE) { - jtable_respond(null, 'delete'); - } else { - jtable_respond(null, 'error', 'Could not delete user'); - } - break; - -case "export": - print json_encode(getlogs()); - break; - -case "clear": - if($allowclearlogs === TRUE) { - clearlogs(); - } else { - jtable_respond(null, 'error', 'Invalid action'); - } - break; -case "rotate": - if($allowrotatelogs === TRUE) { - rotatelogs(); - } else { - jtable_respond(null, 'error', 'Invalid action'); - } - break; -default: - jtable_respond(null, 'error', 'Invalid action'); - break; }