Fixes to the logging system
parent
1c710bef35
commit
33dfbcdeea
|
@ -30,16 +30,26 @@ class Log {
|
|||
}
|
||||
|
||||
// read logs
|
||||
public function readLog($user_id, $scope='user') {
|
||||
$sql = 'SELECT * FROM logs';
|
||||
public function readLog($user_id, $scope, $offset=0, $items_per_page='') {
|
||||
if ($scope === 'user') {
|
||||
$sql .= ' WHERE user_id = :user_id';
|
||||
$sql = 'SELECT * FROM logs WHERE user_id = :user_id ORDER BY time DESC';
|
||||
if ($items_per_page) {
|
||||
$items_per_page = (int)$items_per_page;
|
||||
$sql .= ' LIMIT ' . $offset . ',' . $items_per_page;
|
||||
}
|
||||
|
||||
$query = $this->db->prepare($sql);
|
||||
$query->execute([
|
||||
':user_id' => $user_id,
|
||||
]);
|
||||
}
|
||||
if ($scope === 'system') {
|
||||
$sql = 'SELECT * FROM logs ORDER BY time DESC';
|
||||
if ($items_per_page) {
|
||||
$items_per_page = (int)$items_per_page;
|
||||
$sql .= ' LIMIT ' . $offset . ',' . $items_per_page;
|
||||
}
|
||||
|
||||
$query = $this->db->prepare($sql);
|
||||
$query->execute();
|
||||
}
|
||||
|
|
|
@ -8,8 +8,8 @@ try {
|
|||
// connect to database
|
||||
$dbWeb = connectDB($config);
|
||||
|
||||
require '../app/classes/user.php';
|
||||
$userObject = new User($dbWeb);
|
||||
// require '../app/classes/user.php';
|
||||
// $userObject = new User($dbWeb);
|
||||
|
||||
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
||||
$username = $_POST['username'];
|
||||
|
@ -44,7 +44,7 @@ try {
|
|||
// redirect to index
|
||||
$_SESSION['notice'] = "Login successful";
|
||||
$user_id = $userObject->getUserId($username)[0]['id'];
|
||||
$logObject->insertLog($user_id, "User \"$username\" logged in.", 'user');
|
||||
$logObject->insertLog($user_id, "Login: User \"$username\" logged in.", 'user');
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
|
||||
|
@ -52,7 +52,7 @@ try {
|
|||
} else {
|
||||
$_SESSION['error'] = "Login failed.";
|
||||
$user_id = $userObject->getUserId($username)[0]['id'];
|
||||
$logObject->insertLog($user_id, "Failed login attempt for user \"$username\".", 'user');
|
||||
$logObject->insertLog($user_id, "Login: Failed login attempt for user \"$username\".", 'user');
|
||||
header('Location: index.php');
|
||||
exit();
|
||||
}
|
||||
|
|
|
@ -7,22 +7,45 @@
|
|||
// specify time range
|
||||
include '../app/helpers/time_range.php';
|
||||
|
||||
// pagination variables
|
||||
$items_per_page = 15;
|
||||
$browse_page = $_REQUEST['p'] ?? 1;
|
||||
$browse_page = (int)$browse_page;
|
||||
$offset = ($browse_page -1) * $items_per_page;
|
||||
|
||||
// user or system
|
||||
$scope = 'user';
|
||||
|
||||
// prepare the result
|
||||
$search = $logObject->readLog($user_id, 'user');
|
||||
$search = $logObject->readLog($user_id, $scope, $offset, $items_per_page);
|
||||
$search_all = $logObject->readLog($user_id, $scope);
|
||||
|
||||
if (!empty($search)) {
|
||||
// we get total items and number of pages
|
||||
$item_count = count($search_all);
|
||||
$page_count = ceil($item_count / $items_per_page);
|
||||
|
||||
$logs = array();
|
||||
$logs['records'] = array();
|
||||
|
||||
foreach ($search as $item) {
|
||||
extract($item);
|
||||
|
||||
$log_record = array(
|
||||
// assign title to the field in the array record
|
||||
'user ID' => $user_id,
|
||||
'time' => $time,
|
||||
'log message' => $message
|
||||
);
|
||||
// when we show only user's logs, omit user_id column
|
||||
if ($scope === 'user') {
|
||||
$log_record = array(
|
||||
// assign title to the field in the array record
|
||||
'time' => $item['time'],
|
||||
'log message' => $item['message']
|
||||
);
|
||||
} else {
|
||||
$log_record = array(
|
||||
// assign title to the field in the array record
|
||||
'userID' => $item['user_id'],
|
||||
'time' => $item['time'],
|
||||
'log message' => $item['message']
|
||||
);
|
||||
}
|
||||
|
||||
// populate the result array
|
||||
array_push($logs['records'], $log_record);
|
||||
}
|
||||
|
@ -35,7 +58,7 @@ $widget['name'] = 'Logs';
|
|||
$username = $userObject->getUserDetails($user_id)[0]['username'];
|
||||
$widget['title'] = "Log events for user \"$username\"";
|
||||
$widget['filter'] = true;
|
||||
if (!empty($conferences['records'])) {
|
||||
if (!empty($logs['records'])) {
|
||||
$widget['full'] = true;
|
||||
$widget['table_headers'] = array_keys($logs['records'][0]);
|
||||
$widget['table_records'] = $logs['records'];
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// registration is allowed, go on
|
||||
if ($config['registration_enabled'] === true) {
|
||||
|
||||
require '../app/classes/user.php';
|
||||
// require '../app/classes/user.php';
|
||||
unset($error);
|
||||
|
||||
try {
|
||||
|
@ -11,7 +11,7 @@ if ($config['registration_enabled'] === true) {
|
|||
// connect to database
|
||||
$dbWeb = connectDB($config);
|
||||
|
||||
$userObject = new User($dbWeb);
|
||||
// $userObject = new User($dbWeb);
|
||||
|
||||
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ) {
|
||||
$username = $_POST['username'];
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<?php foreach ($widget['table_headers'] as $header) { ?>
|
||||
<th scope="col"><?= htmlspecialchars($header) ?></th>
|
||||
<th scope="col" class="th-<?= htmlspecialchars($header) ?>"><?= htmlspecialchars($header) ?></th>
|
||||
<?php } ?>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
|
@ -123,15 +123,23 @@ $firstPlatform = $platformsAll[0]['id'];
|
|||
$platform_id = $_REQUEST['platform'] ?? $firstPlatform;
|
||||
$platformDetails = $platformObject->getPlatformDetails($platform_id);
|
||||
|
||||
// init user functions
|
||||
require '../app/classes/user.php';
|
||||
include '../app/helpers/profile.php';
|
||||
$userObject = new User($dbWeb);
|
||||
|
||||
// logout is a special case, as we can't use session vars for notices
|
||||
if ($page == 'logout') {
|
||||
|
||||
$notice = "You were logged out.<br />You can log in again.";
|
||||
$user_id = $userObject->getUserId($currentUser)[0]['id'];
|
||||
$logObject->insertLog($user_id, "Logout: User \"$currentUser\" logged out.", 'user');
|
||||
|
||||
// clean up session
|
||||
session_unset();
|
||||
session_destroy();
|
||||
setcookie('username', "", time() - 100, $config['folder'], $config['domain'], isset($_SERVER['HTTPS']), true);
|
||||
|
||||
$notice = "You were logged out.<br />You can log in again.";
|
||||
include '../app/templates/page-header.php';
|
||||
include '../app/templates/page-menu.php';
|
||||
include '../app/templates/block-message.php';
|
||||
|
@ -141,9 +149,6 @@ if ($page == 'logout') {
|
|||
|
||||
// if user is logged in, we need user details and rights
|
||||
if (isset($currentUser)) {
|
||||
require '../app/classes/user.php';
|
||||
include '../app/helpers/profile.php';
|
||||
$userObject = new User($dbWeb);
|
||||
$user_id = $userObject->getUserId($currentUser)[0]['id'];
|
||||
$userDetails = $userObject->getUserDetails($user_id);
|
||||
$userRights = $userObject->getUserRights($user_id);
|
||||
|
|
|
@ -240,3 +240,7 @@
|
|||
margin-left: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.th-time {
|
||||
width: 200px;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue