diff --git a/Civi/Api4/FundingApplicationProcess.php b/Civi/Api4/FundingApplicationProcess.php index 30f964b7c..47a759c25 100644 --- a/Civi/Api4/FundingApplicationProcess.php +++ b/Civi/Api4/FundingApplicationProcess.php @@ -76,7 +76,7 @@ public static function delete($checkPermissions = TRUE) { * @return \Civi\Funding\Api4\Action\FundingApplicationProcess\GetAction */ public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } public static function getFields($checkPermissions = TRUE) { diff --git a/Civi/Api4/FundingCase.php b/Civi/Api4/FundingCase.php index 12ecdccc6..9bf44837a 100644 --- a/Civi/Api4/FundingCase.php +++ b/Civi/Api4/FundingCase.php @@ -58,7 +58,7 @@ public static function finishClearing(bool $checkPermissions = TRUE): FinishClea * @return \Civi\Funding\Api4\Action\FundingCase\GetAction */ public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } /** diff --git a/Civi/Api4/FundingClearingCostItem.php b/Civi/Api4/FundingClearingCostItem.php index e87be3cc1..1835ca62c 100644 --- a/Civi/Api4/FundingClearingCostItem.php +++ b/Civi/Api4/FundingClearingCostItem.php @@ -19,7 +19,7 @@ final class FundingClearingCostItem extends Generic\DAOEntity { use AccessROPermissionsTrait; public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } public static function getFields($checkPermissions = TRUE) { diff --git a/Civi/Api4/FundingClearingProcess.php b/Civi/Api4/FundingClearingProcess.php index f34cd9405..61b38565c 100644 --- a/Civi/Api4/FundingClearingProcess.php +++ b/Civi/Api4/FundingClearingProcess.php @@ -26,7 +26,7 @@ final class FundingClearingProcess extends Generic\DAOEntity { } public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } public static function getFields($checkPermissions = TRUE) { diff --git a/Civi/Api4/FundingClearingResourcesItem.php b/Civi/Api4/FundingClearingResourcesItem.php index 8a801ff80..fc27df173 100644 --- a/Civi/Api4/FundingClearingResourcesItem.php +++ b/Civi/Api4/FundingClearingResourcesItem.php @@ -19,7 +19,7 @@ final class FundingClearingResourcesItem extends Generic\DAOEntity { use AccessROPermissionsTrait; public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } public static function getFields($checkPermissions = TRUE) { diff --git a/Civi/Api4/FundingDrawdown.php b/Civi/Api4/FundingDrawdown.php index 8c53543ae..7a75ac8bb 100644 --- a/Civi/Api4/FundingDrawdown.php +++ b/Civi/Api4/FundingDrawdown.php @@ -35,7 +35,7 @@ public static function create($checkPermissions = TRUE) { } public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } public static function getFields($checkPermissions = TRUE) { diff --git a/Civi/Api4/FundingPayoutProcess.php b/Civi/Api4/FundingPayoutProcess.php index 35958ac9a..6d00ea8e1 100644 --- a/Civi/Api4/FundingPayoutProcess.php +++ b/Civi/Api4/FundingPayoutProcess.php @@ -19,7 +19,7 @@ class FundingPayoutProcess extends Generic\DAOEntity { use AccessPermissionsTrait; public static function get($checkPermissions = TRUE) { - return \Civi::service(GetAction::class)->setCheckPermissions($checkPermissions); + return (new GetAction())->setCheckPermissions($checkPermissions); } public static function getFields($checkPermissions = TRUE) { diff --git a/Civi/Funding/Api4/Action/FundingApplicationProcess/GetAction.php b/Civi/Funding/Api4/Action/FundingApplicationProcess/GetAction.php index a73c5ff80..2e48e6ed8 100644 --- a/Civi/Funding/Api4/Action/FundingApplicationProcess/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingApplicationProcess/GetAction.php @@ -33,9 +33,9 @@ final class GetAction extends AbstractReferencingDAOGetAction { public function __construct( - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct( FundingApplicationProcess::getEntityName(), @@ -68,7 +68,7 @@ public function _run(Result $result): void { if ([] !== $clearingProcessFields) { /** @phpstan-var array $record */ foreach ($result as &$record) { - $clearingProcessAmounts = $this->_api4->execute(FundingClearingProcess::getEntityName(), 'get', [ + $clearingProcessAmounts = $this->getApi4()->execute(FundingClearingProcess::getEntityName(), 'get', [ 'select' => array_map(fn (string $field) => 'SUM(' . $field . ') AS SUM_' . $field, $clearingProcessFields), 'where' => [ ['application_process_id', '=', $record['id']], @@ -91,7 +91,7 @@ private function canOpenClearing(array $record): bool { return FALSE; } - if (0 !== $this->_api4->countEntities( + if (0 !== $this->getApi4()->countEntities( FundingClearingProcess::getEntityName(), Comparison::new( 'application_process_id', @@ -102,7 +102,7 @@ private function canOpenClearing(array $record): bool { return TRUE; } - $fundingCase = $this->_fundingCaseManager->get($record['funding_case_id']); + $fundingCase = $this->getFundingCaseManager()->get($record['funding_case_id']); Assert::notNull($fundingCase); return $fundingCase->hasPermission(ClearingProcessPermissions::CLEARING_MODIFY) || $fundingCase->hasPermission( diff --git a/Civi/Funding/Api4/Action/FundingCase/AbstractReferencingDAOGetAction.php b/Civi/Funding/Api4/Action/FundingCase/AbstractReferencingDAOGetAction.php index bbba50bdb..7a83267ac 100644 --- a/Civi/Funding/Api4/Action/FundingCase/AbstractReferencingDAOGetAction.php +++ b/Civi/Funding/Api4/Action/FundingCase/AbstractReferencingDAOGetAction.php @@ -44,13 +44,13 @@ abstract class AbstractReferencingDAOGetAction extends DAOGetAction { protected bool $ignoreCasePermissions = FALSE; - protected Api4Interface $_api4; + protected string $_fundingCaseIdFieldName = 'funding_case_id'; - protected FundingCaseManager $_fundingCaseManager; + private ?Api4Interface $api4; - protected RequestContextInterface $_requestContext; + private ?FundingCaseManager $fundingCaseManager; - protected string $_fundingCaseIdFieldName = 'funding_case_id'; + private ?RequestContextInterface $requestContext; /** * @phpstan-var array @@ -64,14 +64,14 @@ abstract class AbstractReferencingDAOGetAction extends DAOGetAction { public function __construct( string $entityName, - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct($entityName, 'get'); - $this->_api4 = $api4; - $this->_fundingCaseManager = $fundingCaseManager; - $this->_requestContext = $requestContext; + $this->api4 = $api4; + $this->fundingCaseManager = $fundingCaseManager; + $this->requestContext = $requestContext; } public function _run(Result $result): void { @@ -88,14 +88,6 @@ public function _run(Result $result): void { $this->ensureFundingCasePermissions(); } - FundingCasePermissionsUtil::addPermissionsCacheJoin( - $this, - $this->_fundingCaseIdFieldName, - $this->_requestContext->getContactId(), - $this->_requestContext->isRemote() - ); - FundingCasePermissionsUtil::addPermissionsRestriction($this); - if (!$this->isFieldSelected($this->_fundingCaseIdFieldName)) { if ([] === $this->getSelect()) { $this->setSelect(['*']); @@ -128,6 +120,26 @@ public function _run(Result $result): void { } } + public function setDefaultWhereClause(): void { + if (!$this->ignoreCasePermissions) { + if (NULL === $this->originalSelect) { + // _run() was not called, e.g. aggregation line in SearchKit. + // See \Civi\Api4\Action\SearchDisplay\Run::processResult() + $this->ensureFundingCasePermissions(); + } + + FundingCasePermissionsUtil::addPermissionsCacheJoin( + $this, + $this->_fundingCaseIdFieldName, + $this->getRequestContext()->getContactId(), + $this->getRequestContext()->isRemote() + ); + FundingCasePermissionsUtil::addPermissionsRestriction($this); + } + + parent::setDefaultWhereClause(); + } + /** * Ensures that at least the funding cases which are relevant have permissions * cached. @@ -143,7 +155,7 @@ protected function ensureFundingCasePermissions(): void { $action->addWhere('id', '=', $fundingCaseId); } - $this->_api4->executeAction($action); + $this->getApi4()->executeAction($action); } /** @@ -156,8 +168,8 @@ protected function ensureFundingCasePermissions(): void { * @throws \CRM_Core_Exception */ protected function handleRecord(array &$record): bool { - // @phpstan-ignore-next-line - return $this->_fundingCaseManager->hasAccess($record[$this->_fundingCaseIdFieldName]); + // @phpstan-ignore argument.type + return $this->getFundingCaseManager()->hasAccess($record[$this->_fundingCaseIdFieldName]); } protected function initOriginalSelect(): void { @@ -171,6 +183,21 @@ protected function getOriginalSelect(): array { return $this->originalSelect ?? $this->getSelect(); } + protected function getApi4(): Api4Interface { + // @phpstan-ignore return.type, assign.propertyType + return $this->api4 ??= \Civi::service(Api4Interface::class); + } + + protected function getFundingCaseManager(): FundingCaseManager { + // @phpstan-ignore return.type, assign.propertyType + return $this->fundingCaseManager ??= \Civi::service(FundingCaseManager::class); + } + + protected function getRequestContext(): RequestContextInterface { + // @phpstan-ignore return.type, assign.propertyType + return $this->requestContext ??= \Civi::service(RequestContextInterface::class); + } + /** * For DAO entities isFieldExplicitlySelected() has to be used for fields of * type "Extra". Those fields are not part of the result if "*" is selected. diff --git a/Civi/Funding/Api4/Action/FundingCase/GetAction.php b/Civi/Funding/Api4/Action/FundingCase/GetAction.php index 870e2bd1b..513feee92 100644 --- a/Civi/Funding/Api4/Action/FundingCase/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingCase/GetAction.php @@ -40,25 +40,27 @@ final class GetAction extends DAOGetAction { private bool $cachePermissionsOnly = FALSE; - private Api4Interface $api4; + private ?Api4Interface $api4; - private CiviEventDispatcherInterface $eventDispatcher; + private ?CiviEventDispatcherInterface $eventDispatcher; - private FundingCasePermissionsCacheManager $permissionsCacheManager; + private ?FundingCasePermissionsCacheManager $permissionsCacheManager; - private PossiblePermissionsLoaderInterface $possiblePermissionsLoader; + private ?PossiblePermissionsLoaderInterface $possiblePermissionsLoader; - private RequestContextInterface $requestContext; + private ?RequestContextInterface $requestContext; - private TransferContractRouter $transferContractRouter; + private ?TransferContractRouter $transferContractRouter; + + private bool $runCalled = FALSE; public function __construct( - Api4Interface $api4, - CiviEventDispatcherInterface $eventDispatcher, - FundingCasePermissionsCacheManager $permissionsCacheManager, - PossiblePermissionsLoaderInterface $possiblePermissionsLoader, - RequestContextInterface $requestContext, - TransferContractRouter $transferContractRouterRecreate + ?Api4Interface $api4 = NULL, + ?CiviEventDispatcherInterface $eventDispatcher = NULL, + ?FundingCasePermissionsCacheManager $permissionsCacheManager = NULL, + ?PossiblePermissionsLoaderInterface $possiblePermissionsLoader = NULL, + ?RequestContextInterface $requestContext = NULL, + ?TransferContractRouter $transferContractRouterRecreate = NULL ) { parent::__construct(FundingCase::getEntityName(), 'get'); $this->api4 = $api4; @@ -72,6 +74,8 @@ public function __construct( // phpcs:disable Generic.Metrics.CyclomaticComplexity.TooHigh public function _run(Result $result): void { // phpcs:enable + $this->runCalled = TRUE; + $rowCountSelected = $this->isRowCountSelected(); if ($rowCountSelected || $this->cachePermissionsOnly) { $this->ensurePermissions(); @@ -81,14 +85,6 @@ public function _run(Result $result): void { return; } - FundingCasePermissionsUtil::addPermissionsCacheJoin( - $this, - 'id', - $this->requestContext->getContactId(), - $this->requestContext->isRemote() - ); - FundingCasePermissionsUtil::addPermissionsRestriction($this); - if ($this->isRowCountSelectedOnly()) { parent::_run($result); @@ -138,14 +134,14 @@ public function _run(Result $result): void { FlattenedPermissionsUtil::addFlattenedPermissions($record, $record['permissions'], $possiblePermissions); $record['transfer_contract_uri'] = - isset($record['id']) ? $this->transferContractRouter->generate($record['id']) : NULL; + isset($record['id']) ? $this->getTransferContractRouter()->generate($record['id']) : NULL; $clearingProcessFields = array_intersect([ 'amount_cleared', 'amount_admitted', ], $this->getSelect()); if ([] !== $clearingProcessFields) { - $clearingProcessAmounts = $this->api4->execute(FundingClearingProcess::getEntityName(), 'get', [ + $clearingProcessAmounts = $this->getApi4()->execute(FundingClearingProcess::getEntityName(), 'get', [ 'select' => array_map(fn (string $field) => 'SUM(' . $field . ') AS SUM_' . $field, $clearingProcessFields), 'where' => [ ['application_process_id.funding_case_id', '=', $record['id']], @@ -187,25 +183,72 @@ public function setCachePermissionsOnly(bool $cachePermissionsOnly): self { return $this; } + public function setDefaultWhereClause(): void { + if (!$this->runCalled) { + // _run() was not called, e.g. aggregation line in SearchKit. + // See \Civi\Api4\Action\SearchDisplay\Run::processResult() + $this->ensurePermissions(); + } + + FundingCasePermissionsUtil::addPermissionsCacheJoin( + $this, + 'id', + $this->getRequestContext()->getContactId(), + $this->getRequestContext()->isRemote() + ); + FundingCasePermissionsUtil::addPermissionsRestriction($this); + + parent::setDefaultWhereClause(); + } + + private function getApi4(): Api4Interface { + // @phpstan-ignore return.type, assign.propertyType + return $this->api4 ??= \Civi::service(Api4Interface::class); + } + + private function getEventDispatcher(): CiviEventDispatcherInterface { + return $this->eventDispatcher ??= \Civi::dispatcher(); + } + + private function getPermissionsCacheManager(): FundingCasePermissionsCacheManager { + // @phpstan-ignore return.type, assign.propertyType + return $this->permissionsCacheManager ??= \Civi::service(FundingCasePermissionsCacheManager::class); + } + + public function getPossiblePermissionsLoader(): PossiblePermissionsLoaderInterface { + // @phpstan-ignore return.type, assign.propertyType + return $this->possiblePermissionsLoader ??= \Civi::service(PossiblePermissionsLoaderInterface::class); + } + + private function getRequestContext(): RequestContextInterface { + // @phpstan-ignore return.type, assign.propertyType + return $this->requestContext ??= \Civi::service(RequestContextInterface::class); + } + + public function getTransferContractRouter(): TransferContractRouter { + // @phpstan-ignore return.type, assign.propertyType + return $this->transferContractRouter ??= \Civi::service(TransferContractRouter::class); + } + /** * @phpstan-param array{id: int, '_pc.id': int|null} $record * * @phpstan-return list */ private function determineAndCachePermissions(array $record): array { - $permissionsGetEvent = new GetPermissionsEvent($record['id'], $this->requestContext->getContactId()); - $this->eventDispatcher->dispatch(GetPermissionsEvent::class, $permissionsGetEvent); + $permissionsGetEvent = new GetPermissionsEvent($record['id'], $this->getRequestContext()->getContactId()); + $this->getEventDispatcher()->dispatch(GetPermissionsEvent::class, $permissionsGetEvent); $permissions = $permissionsGetEvent->getPermissions(); if (NULL !== $record['_pc.id']) { - $this->permissionsCacheManager->update($record['_pc.id'], $permissions); + $this->getPermissionsCacheManager()->update($record['_pc.id'], $permissions); } else { - $this->permissionsCacheManager->add( + $this->getPermissionsCacheManager()->add( $record['id'], - $this->requestContext->getContactId(), - $this->requestContext->isRemote(), + $this->getRequestContext()->getContactId(), + $this->getRequestContext()->isRemote(), $permissions ); } @@ -232,8 +275,8 @@ private function ensurePermissions(): void { FundingCasePermissionsUtil::addPermissionsCacheJoin( $daoGetAction, 'id', - $this->requestContext->getContactId(), - $this->requestContext->isRemote() + $this->getRequestContext()->getContactId(), + $this->getRequestContext()->isRemote() ); $result = new Result(); @@ -248,7 +291,7 @@ private function ensurePermissions(): void { * @phpstan-return list */ private function getPossiblePermissions(): array { - return array_keys($this->possiblePermissionsLoader->getFilteredPermissions($this->getEntityName())); + return array_keys($this->getPossiblePermissionsLoader()->getFilteredPermissions($this->getEntityName())); } } diff --git a/Civi/Funding/Api4/Action/FundingClearingCostItem/GetAction.php b/Civi/Funding/Api4/Action/FundingClearingCostItem/GetAction.php index 553dcb7fc..d6d975d3e 100644 --- a/Civi/Funding/Api4/Action/FundingClearingCostItem/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingClearingCostItem/GetAction.php @@ -27,9 +27,9 @@ final class GetAction extends \Civi\Funding\Api4\Action\Generic\ClearingItem\GetAction { public function __construct( - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct( FundingClearingCostItem::getEntityName(), diff --git a/Civi/Funding/Api4/Action/FundingClearingProcess/GetAction.php b/Civi/Funding/Api4/Action/FundingClearingProcess/GetAction.php index 10117837c..4b8cec07e 100644 --- a/Civi/Funding/Api4/Action/FundingClearingProcess/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingClearingProcess/GetAction.php @@ -28,9 +28,9 @@ final class GetAction extends AbstractReferencingDAOGetAction { public function __construct( - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct( FundingClearingProcess::getEntityName(), diff --git a/Civi/Funding/Api4/Action/FundingClearingResourcesItem/GetAction.php b/Civi/Funding/Api4/Action/FundingClearingResourcesItem/GetAction.php index 4e6335a6c..7ff364caa 100644 --- a/Civi/Funding/Api4/Action/FundingClearingResourcesItem/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingClearingResourcesItem/GetAction.php @@ -27,9 +27,9 @@ final class GetAction extends \Civi\Funding\Api4\Action\Generic\ClearingItem\GetAction { public function __construct( - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct( FundingClearingResourcesItem::getEntityName(), diff --git a/Civi/Funding/Api4/Action/FundingDrawdown/GetAction.php b/Civi/Funding/Api4/Action/FundingDrawdown/GetAction.php index e1016d365..c112164cb 100644 --- a/Civi/Funding/Api4/Action/FundingDrawdown/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingDrawdown/GetAction.php @@ -41,9 +41,9 @@ final class GetAction extends AbstractReferencingDAOGetAction { private array $fundingCases = []; public function __construct( - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct( FundingDrawdown::getEntityName(), @@ -85,7 +85,7 @@ protected function ensureFundingCasePermissions(): void { $action->addWhere('pp.id', '=', $payoutProcessId); } - $this->_api4->executeAction($action); + $this->getApi4()->executeAction($action); } protected function handleRecord(array &$record): bool { @@ -111,7 +111,7 @@ protected function handleRecord(array &$record): bool { */ private function getFundingCase(int $id): FundingCaseEntity { if (!isset($this->fundingCases[$id])) { - $fundingCase = $this->_fundingCaseManager->get($id); + $fundingCase = $this->getFundingCaseManager()->get($id); Assert::notNull($fundingCase, sprintf('Funding case with ID "%d" not found', $id)); $this->fundingCases[$id] = $fundingCase; } diff --git a/Civi/Funding/Api4/Action/FundingPayoutProcess/GetAction.php b/Civi/Funding/Api4/Action/FundingPayoutProcess/GetAction.php index 273638968..ada6cc800 100644 --- a/Civi/Funding/Api4/Action/FundingPayoutProcess/GetAction.php +++ b/Civi/Funding/Api4/Action/FundingPayoutProcess/GetAction.php @@ -28,9 +28,9 @@ final class GetAction extends AbstractReferencingDAOGetAction { public function __construct( - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct(FundingPayoutProcess::getEntityName(), $api4, $fundingCaseManager, $requestContext); } diff --git a/Civi/Funding/Api4/Action/Generic/ClearingItem/GetAction.php b/Civi/Funding/Api4/Action/Generic/ClearingItem/GetAction.php index 6b2183719..d1e155368 100644 --- a/Civi/Funding/Api4/Action/Generic/ClearingItem/GetAction.php +++ b/Civi/Funding/Api4/Action/Generic/ClearingItem/GetAction.php @@ -42,9 +42,9 @@ class GetAction extends AbstractReferencingDAOGetAction { public function __construct( string $entityName, - Api4Interface $api4, - FundingCaseManager $fundingCaseManager, - RequestContextInterface $requestContext + ?Api4Interface $api4 = NULL, + ?FundingCaseManager $fundingCaseManager = NULL, + ?RequestContextInterface $requestContext = NULL ) { parent::__construct( $entityName, @@ -88,7 +88,7 @@ protected function ensureFundingCasePermissions(): void { $action->addWhere('cp.id', '=', $clearingProcessId); } - $this->_api4->executeAction($action); + $this->getApi4()->executeAction($action); } protected function handleRecord(array &$record): bool { @@ -112,7 +112,7 @@ protected function handleRecord(array &$record): bool { */ private function getFundingCase(int $id): FundingCaseEntity { if (!isset($this->fundingCases[$id])) { - $fundingCase = $this->_fundingCaseManager->get($id); + $fundingCase = $this->getFundingCaseManager()->get($id); Assert::notNull($fundingCase, sprintf('Funding case with ID "%d" not found', $id)); $this->fundingCases[$id] = $fundingCase; } diff --git a/services/application-process.php b/services/application-process.php index 95c771a50..19391aae2 100644 --- a/services/application-process.php +++ b/services/application-process.php @@ -22,7 +22,6 @@ use Civi\Funding\Api4\Action\FundingApplicationProcess\CreateAction; use Civi\Funding\Api4\Action\FundingApplicationProcess\DeleteAction; -use Civi\Funding\Api4\Action\FundingApplicationProcess\GetAction; use Civi\Funding\Api4\Action\FundingApplicationProcess\GetFieldsAction; use Civi\Funding\Api4\Action\FundingApplicationProcess\GetFormDataAction; use Civi\Funding\Api4\Action\FundingApplicationProcess\GetJsonSchemaAction; @@ -193,9 +192,6 @@ $container->autowire(DeleteAction::class) ->setPublic(TRUE) ->setShared(TRUE); -$container->autowire(GetAction::class) - ->setPublic(TRUE) - ->setShared(FALSE); $container->autowire(GetFieldsAction::class) ->setPublic(TRUE) ->setShared(FALSE); diff --git a/services/clearing-process.php b/services/clearing-process.php index d89c02ee5..a244a045a 100644 --- a/services/clearing-process.php +++ b/services/clearing-process.php @@ -101,14 +101,6 @@ ->setPublic(TRUE) ->setShared(FALSE); -$container->autowire(\Civi\Funding\Api4\Action\FundingClearingCostItem\GetAction::class) - ->setPublic(TRUE) - ->setShared(FALSE); - -$container->autowire(\Civi\Funding\Api4\Action\FundingClearingResourcesItem\GetAction::class) - ->setPublic(TRUE) - ->setShared(FALSE); - ServiceRegistrator::autowireAllImplementing( $container, __DIR__ . '/../Civi/Funding/ClearingProcess/Api4/ActionHandler', diff --git a/services/funding-case.php b/services/funding-case.php index af561c57b..a4c35d352 100644 --- a/services/funding-case.php +++ b/services/funding-case.php @@ -77,10 +77,22 @@ $container->addCompilerPass(new FundingCaseRecipientContactSetHandlerPass()); $container->addCompilerPass(new FundingCaseNotificationContactsSetHandlerPass()); -$container->autowire(FundingCaseManager::class); +$container->autowire(FundingCaseManager::class) + // phpcs:disable Squiz.PHP.CommentedOutCode.Found + // Accessed in \Civi\Funding\Api4\Action\FundingCase\AbstractReferencingDAOGetAction. + // phpcs:enable + ->setPublic(TRUE); $container->autowire(FundingCasePermissionsInitializer::class); -$container->autowire(FundingCasePermissionsCacheManager::class); -$container->autowire(TransferContractRouter::class); +$container->autowire(FundingCasePermissionsCacheManager::class) + // phpcs:disable Squiz.PHP.CommentedOutCode.Found + // Used in class \Civi\Funding\Api4\Action\FundingCase\GetAction. + // phpcs:enable + ->setPublic(TRUE); +$container->autowire(TransferContractRouter::class) + // phpcs:disable Squiz.PHP.CommentedOutCode.Found + // Used in class \Civi\Funding\Api4\Action\FundingCase\GetAction. + // phpcs:enable + ->setPublic(TRUE); $container->autowire(FundingCaseIdentifierGeneratorInterface::class, FundingCaseIdentifierGenerator::class); $container->autowire(FallbackPossibleRecipientsForChangeLoader::class); diff --git a/services/payout-process.php b/services/payout-process.php index be893e23b..1183db5e1 100644 --- a/services/payout-process.php +++ b/services/payout-process.php @@ -43,18 +43,6 @@ $container->autowire(DrawdownTokenNameExtractor::class); $container->autowire(DrawdownTokenResolver::class); -ServiceRegistrator::autowireAllImplementing( - $container, - __DIR__ . '/../Civi/Funding/Api4/Action/FundingPayoutProcess', - 'Civi\\Funding\\Api4\\Action\\FundingPayoutProcess', - AbstractAction::class, - [], - [ - 'public' => TRUE, - 'shared' => FALSE, - ] -); - ServiceRegistrator::autowireAllImplementing( $container, __DIR__ . '/../Civi/Funding/Api4/Action/FundingDrawdown', diff --git a/services/remote-tools.php b/services/remote-tools.php index ede965219..df12163d9 100644 --- a/services/remote-tools.php +++ b/services/remote-tools.php @@ -39,7 +39,11 @@ $container->register(TransactionFactory::class); $container->autowire(OptionsLoaderInterface::class, OptionsLoader::class); -$container->autowire(PossiblePermissionsLoaderInterface::class, PossiblePermissionsLoader::class); +$container->autowire(PossiblePermissionsLoaderInterface::class, PossiblePermissionsLoader::class) + // phpcs:disable Squiz.PHP.CommentedOutCode.Found + // Used in class \Civi\Funding\Api4\Action\FundingCase\GetAction. + // phpcs:enable + ->setPublic(TRUE); $container->autowire(ApiAuthorizeInitRequestSubscriber::class) ->addTag('kernel.event_subscriber');