diff --git a/src/FederationServer/Classes/Configuration.php b/src/FederationServer/Classes/Configuration.php index 5b35a9b..ae9353e 100644 --- a/src/FederationServer/Classes/Configuration.php +++ b/src/FederationServer/Classes/Configuration.php @@ -28,6 +28,7 @@ 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('server.list_operators_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 0b3da34..1faf981 100644 --- a/src/FederationServer/Classes/Configuration/ServerConfiguration.php +++ b/src/FederationServer/Classes/Configuration/ServerConfiguration.php @@ -11,6 +11,7 @@ private string $storagePath; private int $listAuditLogsMaxItems; private int $listEntitiesMaxItems; + private int $listOperatorsMaxItems = 100; /** * ServerConfiguration constructor. @@ -26,6 +27,7 @@ $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; + $this->listOperatorsMaxItems = $config['list_operators_max_items'] ?? 100; } /** @@ -97,4 +99,14 @@ { return $this->listEntitiesMaxItems; } + + /** + * Get the maximum number of items to return when listing operators. + * + * @return int The maximum number of operator items to return. + */ + public function getListOperatorsMaxItems(): int + { + return $this->listOperatorsMaxItems; + } } diff --git a/src/FederationServer/Methods/Operators/ListOperators.php b/src/FederationServer/Methods/Operators/ListOperators.php index 95e2a3e..8b9390c 100644 --- a/src/FederationServer/Methods/Operators/ListOperators.php +++ b/src/FederationServer/Methods/Operators/ListOperators.php @@ -2,6 +2,7 @@ namespace FederationServer\Methods\Operators; + use FederationServer\Classes\Configuration; use FederationServer\Classes\Managers\OperatorManager; use FederationServer\Classes\RequestHandler; use FederationServer\Exceptions\DatabaseOperationException; @@ -21,12 +22,12 @@ throw new RequestException('Unauthorized: Insufficient permissions to list operators', 403); } - $limit = (int) (FederationServer::getParameter('limit') ?? 100); + $limit = (int) (FederationServer::getParameter('limit') ?? Configuration::getServerConfiguration()->getListOperatorsMaxItems()); $page = (int) (FederationServer::getParameter('page') ?? 1); - if($limit < 1) + if($limit < 1 || $limit > Configuration::getServerConfiguration()->getListOperatorsMaxItems()) { - $limit = 100; + $limit = Configuration::getServerConfiguration()->getListOperatorsMaxItems(); } if($page < 1)