<?php
namespace Misuzu;

use Misuzu\Pagination;

if(!$msz->getAuthInfo()->getPerms('global')->check(Perm::G_LOGS_VIEW))
    Template::throwError(403);

$usersCtx = $msz->getUsersContext();
$auditLog = $msz->getAuditLog();
$pagination = new Pagination($auditLog->countLogs(), 50);

if(!$pagination->hasValidOffset())
    Template::throwError(404);

$logs = $auditLog->getLogs(pagination: $pagination);
$userInfos = [];
$userColours = [];

foreach($logs as $log)
    if($log->hasUserId()) {
        $userId = $log->getUserId();
        if(!array_key_exists($userId, $userInfos)) {
            $userInfos[$userId] = $usersCtx->getUserInfo($userId);
            $userColours[$userId] = $usersCtx->getUserColour($userId);
        }
    }

Template::render('manage.general.logs', [
    'global_logs' => $logs,
    'global_logs_pagination' => $pagination,
    'global_logs_users' => $userInfos,
    'global_logs_users_colours' => $userColours,
]);
