Add configuration for maximum entity list items and update ListEntities handling
Some checks are pending
CI / debug (push) Waiting to run
CI / check-phpunit (push) Waiting to run
CI / check-phpdoc (push) Waiting to run
CI / generate-phpdoc (push) Blocked by required conditions
CI / release (push) Waiting to run
CI / test (push) Blocked by required conditions
CI / release-documentation (push) Blocked by required conditions
CI / release-artifacts (push) Blocked by required conditions

This commit is contained in:
netkas 2025-06-04 00:20:45 -04:00
parent 4785961726
commit f6ed7314e3
Signed by: netkas
GPG key ID: 4D8629441B76E4CC
3 changed files with 17 additions and 3 deletions

View file

@ -27,6 +27,7 @@
self::$configuration->setDefault('server.max_upload_size', 52428800); // 50MB default self::$configuration->setDefault('server.max_upload_size', 52428800); // 50MB default
self::$configuration->setDefault('server.storage_path', '/var/www/uploads'); self::$configuration->setDefault('server.storage_path', '/var/www/uploads');
self::$configuration->setDefault('server.list_audit_logs_max_items', 100); 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); self::$configuration->setDefault('logging.log_unauthorized_requests', true);

View file

@ -10,6 +10,7 @@
private int $maxUploadSize; private int $maxUploadSize;
private string $storagePath; private string $storagePath;
private int $listAuditLogsMaxItems; private int $listAuditLogsMaxItems;
private int $listEntitiesMaxItems;
/** /**
* ServerConfiguration constructor. * ServerConfiguration constructor.
@ -24,6 +25,7 @@
$this->maxUploadSize = $config['max_upload_size'] ?? 52428800; // 50MB default $this->maxUploadSize = $config['max_upload_size'] ?? 52428800; // 50MB default
$this->storagePath = $config['storage_path'] ?? '/var/www/uploads'; $this->storagePath = $config['storage_path'] ?? '/var/www/uploads';
$this->listAuditLogsMaxItems = $config['list_audit_logs_max_items'] ?? 100; $this->listAuditLogsMaxItems = $config['list_audit_logs_max_items'] ?? 100;
$this->listEntitiesMaxItems = $config['list_entities_max_items'] ?? 100;
} }
/** /**
@ -85,4 +87,14 @@
{ {
return $this->listAuditLogsMaxItems; 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;
}
} }

View file

@ -2,6 +2,7 @@
namespace FederationServer\Methods\Entities; namespace FederationServer\Methods\Entities;
use FederationServer\Classes\Configuration;
use FederationServer\Classes\Managers\EntitiesManager; use FederationServer\Classes\Managers\EntitiesManager;
use FederationServer\Classes\RequestHandler; use FederationServer\Classes\RequestHandler;
use FederationServer\Exceptions\DatabaseOperationException; use FederationServer\Exceptions\DatabaseOperationException;
@ -15,12 +16,12 @@
*/ */
public static function handleRequest(): void 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); $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) if($page < 1)