diff --git a/src/FederationServer/Classes/Configuration.php b/src/FederationServer/Classes/Configuration.php index 233cccf..4132c8f 100644 --- a/src/FederationServer/Classes/Configuration.php +++ b/src/FederationServer/Classes/Configuration.php @@ -26,6 +26,7 @@ self::$configuration->setDefault('server.api_key', Utilities::generateString()); self::$configuration->setDefault('server.max_upload_size', 52428800); // 50MB default self::$configuration->setDefault('server.storage_path', '/var/www/uploads'); + self::$configuration->setDefault('server.list_audit_logs_max_items', 100); self::$configuration->setDefault('logging.log_unauthorized_requests', true); diff --git a/src/FederationServer/Classes/Configuration/ServerConfiguration.php b/src/FederationServer/Classes/Configuration/ServerConfiguration.php index 8fd3485..a86c043 100644 --- a/src/FederationServer/Classes/Configuration/ServerConfiguration.php +++ b/src/FederationServer/Classes/Configuration/ServerConfiguration.php @@ -9,6 +9,7 @@ private ?string $apiKey; private int $maxUploadSize; private string $storagePath; + private int $listAuditLogsMaxItems; /** * ServerConfiguration constructor. @@ -17,11 +18,12 @@ */ public function __construct(array $config) { - $this->baseUrl = $config['server.base_url'] ?? 'http://127.0.0.1:6161'; - $this->name = $config['server.name'] ?? 'Federation Server'; - $this->apiKey = $config['server.api_key'] ?? null; + $this->baseUrl = $config['base_url'] ?? 'http://127.0.0.1:6161'; + $this->name = $config['name'] ?? 'Federation Server'; + $this->apiKey = $config['api_key'] ?? null; $this->maxUploadSize = $config['max_upload_size'] ?? 52428800; // 50MB default - $this->storagePath = $config['server.storage_path'] ?? '/var/www/uploads'; + $this->storagePath = $config['storage_path'] ?? '/var/www/uploads'; + $this->listAuditLogsMaxItems = $config['list_audit_logs_max_items'] ?? 100; } /** @@ -73,4 +75,14 @@ { return $this->storagePath; } + + /** + * Get the maximum number of items to return when listing audit logs. + * + * @return int The maximum number of audit log items to return. + */ + public function getListAuditLogsMaxItems(): int + { + return $this->listAuditLogsMaxItems; + } } diff --git a/src/FederationServer/Methods/Audit/ListAuditLogs.php b/src/FederationServer/Methods/Audit/ListAuditLogs.php index 3b2efa6..44f7e1e 100644 --- a/src/FederationServer/Methods/Audit/ListAuditLogs.php +++ b/src/FederationServer/Methods/Audit/ListAuditLogs.php @@ -2,6 +2,7 @@ namespace FederationServer\Methods\Audit; + use FederationServer\Classes\Configuration; use FederationServer\Classes\Managers\AuditLogManager; use FederationServer\Classes\Managers\EntitiesManager; use FederationServer\Classes\Managers\OperatorManager; @@ -18,12 +19,12 @@ */ public static function handleRequest(): void { - $limit = (int) (FederationServer::getParameter('limit') ?? 100); + $limit = (int) (FederationServer::getParameter('limit') ?? Configuration::getServerConfiguration()->getListAuditLogsMaxItems()); $page = (int) (FederationServer::getParameter('page') ?? 1); - if($limit < 1) + if($limit < 1 || $limit > Configuration::getServerConfiguration()->getListAuditLogsMaxItems()) { - $limit = 100; + $limit = Configuration::getServerConfiguration()->getListAuditLogsMaxItems(); } if($page < 1)