diff --git a/src/FederationServer/Classes/Configuration.php b/src/FederationServer/Classes/Configuration.php index 4132c8f..5b35a9b 100644 --- a/src/FederationServer/Classes/Configuration.php +++ b/src/FederationServer/Classes/Configuration.php @@ -27,6 +27,7 @@ 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('server.list_entities_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 a86c043..0b3da34 100644 --- a/src/FederationServer/Classes/Configuration/ServerConfiguration.php +++ b/src/FederationServer/Classes/Configuration/ServerConfiguration.php @@ -10,6 +10,7 @@ private int $maxUploadSize; private string $storagePath; private int $listAuditLogsMaxItems; + private int $listEntitiesMaxItems; /** * ServerConfiguration constructor. @@ -24,6 +25,7 @@ $this->maxUploadSize = $config['max_upload_size'] ?? 52428800; // 50MB default $this->storagePath = $config['storage_path'] ?? '/var/www/uploads'; $this->listAuditLogsMaxItems = $config['list_audit_logs_max_items'] ?? 100; + $this->listEntitiesMaxItems = $config['list_entities_max_items'] ?? 100; } /** @@ -85,4 +87,14 @@ { return $this->listAuditLogsMaxItems; } + + /** + * Get the maximum number of items to return when listing entities. + * + * @return int The maximum number of entity items to return. + */ + public function getListEntitiesMaxItems(): int + { + return $this->listEntitiesMaxItems; + } } diff --git a/src/FederationServer/Methods/Entities/ListEntities.php b/src/FederationServer/Methods/Entities/ListEntities.php index 39f0518..bbe8264 100644 --- a/src/FederationServer/Methods/Entities/ListEntities.php +++ b/src/FederationServer/Methods/Entities/ListEntities.php @@ -2,6 +2,7 @@ namespace FederationServer\Methods\Entities; + use FederationServer\Classes\Configuration; use FederationServer\Classes\Managers\EntitiesManager; use FederationServer\Classes\RequestHandler; use FederationServer\Exceptions\DatabaseOperationException; @@ -15,12 +16,12 @@ */ public static function handleRequest(): void { - $limit = (int) (FederationServer::getParameter('limit') ?? 100); + $limit = (int) (FederationServer::getParameter('limit') ?? Configuration::getServerConfiguration()->getListEntitiesMaxItems()); $page = (int) (FederationServer::getParameter('page') ?? 1); - if($limit < 1) + if($limit < 1 || $limit > Configuration::getServerConfiguration()->getListEntitiesMaxItems()) { - $limit = 100; + $limit = Configuration::getServerConfiguration()->getListEntitiesMaxItems(); } if($page < 1)