53 lines
1.7 KiB
PHP
53 lines
1.7 KiB
PHP
<?php
|
|
error_reporting(E_ALL ^ E_NOTICE);
|
|
|
|
include_once('../include/lucidAuth.functions.php');
|
|
|
|
if (!empty($_COOKIE['JWT'])) {
|
|
$validateTokenResult = validateToken($_COOKIE['JWT']);
|
|
}
|
|
|
|
if ($validateTokenResult['status'] === "Success") {
|
|
include_once('../include/lucidAuth.template.php');
|
|
|
|
try {
|
|
$allUsers = $pdoDB->query('
|
|
SELECT User.Id, User.Username, Role.Rolename, COUNT(DISTINCT SecureToken.Value) AS Sessions
|
|
FROM User
|
|
LEFT JOIN Role
|
|
ON (User.RoleId=Role.Id)
|
|
LEFT JOIN SecureToken
|
|
ON (User.Id=SecureToken.UserId)
|
|
')->fetchAll(PDO::FETCH_ASSOC);
|
|
} catch (Exception $e) {
|
|
// Should really do some actual errorhandling here
|
|
throw new Exception($e);
|
|
}
|
|
|
|
foreach($allUsers as $row) {
|
|
$tableRows[] = sprintf('<tr><td data-userid="%1$s">%2$s</td><td>%3$s</td><td class="immutable"><a href="?">%4$s</a></td></tr>',
|
|
$row['Id'],
|
|
explode('\\', $row['Username'])[1],
|
|
$row['Rolename'],
|
|
$row['Sessions']
|
|
);
|
|
}
|
|
|
|
echo sprintf($pageLayout['full2'],
|
|
sprintf($contentLayout['manage']['header'],
|
|
$validateTokenResult['name']
|
|
),
|
|
sprintf($contentLayout['manage']['section'],
|
|
implode($tableRows)
|
|
)
|
|
);
|
|
} else {
|
|
// No cookie containing valid authentication token found;
|
|
// explicitly deleting any remaining cookie, then redirecting to loginpage
|
|
setcookie('JWT', FALSE);
|
|
|
|
header("HTTP/1.1 401 Unauthorized");
|
|
header("Location: lucidAuth.login.php");
|
|
}
|
|
|
|
?>
|