<?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.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>%1$s</td><td>%2$s</td><td class="immutable"><a href="?">%3$s</a></td></tr>',
                explode('\\', $row['Username'])[1],
                $row['Rolename'],
                $row['Sessions']
            );
    	}

		echo sprintf($pageLayout['full'],
			sprintf($contentLayout['manage'],
				$validateTokenResult['name'],
                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");
	}

?>