connectionPool->getQueryBuilderForTable('sys_log'); $logEntries = $queryBuilder ->select('uid', 'tstamp', 'userid', 'details') ->from('sys_log') ->where( $queryBuilder->expr()->eq( 'type', $queryBuilder->createNamedParameter(SystemLogType::LOGIN, Connection::PARAM_INT) ), $queryBuilder->expr()->eq( 'action', $queryBuilder->createNamedParameter(SystemLogLoginAction::LOGIN, Connection::PARAM_INT) ) ) ->orderBy('tstamp', 'DESC') ->setMaxResults($limit) ->executeQuery() ->fetchAllAssociative(); // Enrich with user information $items = []; $userNames = BackendUtility::getUserNames('username,realName,uid'); foreach ($logEntries as $entry) { $userId = (int)$entry['userid']; $userInfo = $userNames[$userId] ?? null; if ($userInfo !== null) { $items[] = [ 'timestamp' => (int)$entry['tstamp'], 'userId' => $userId, 'username' => $userInfo['username'] ?? '', 'realName' => $userInfo['realName'] ?? '', 'details' => $entry['details'], ]; } } return $items; } }