From b5c3ec33aad7281f259c80637bf0c1f1d406b4f2 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Wed, 27 May 2026 19:15:52 +0200 Subject: [PATCH] fix(nc34): replace all OC::$server->get() with ContainerInterface injection Removes all 64 remaining \OC::$server->get() calls from service and event listener classes. \OC::$server is removed in Nextcloud 34 and throws a fatal Error (not Exception) when called, causing cron jobs and event listeners to die silently. Changes: - OrganizationSyncService: add ContainerInterface constructor param + replace 26 calls - ContactpersoonService: already had $this->container, replaced 15 calls - GebruikSyncService: add ContainerInterface constructor param + replace 2 calls - SoftwareCatalogEventListener: add ContainerInterface constructor param + replace 8 calls - UserProfileUpdatedEventListener: add ContainerInterface constructor param + replace 7 calls - ContactpersonenController: already had $this->container, replaced 4 calls - Application.php: pass container: $container to OrganizationSyncService + GebruikSyncService factories NC34 event listeners (SoftwareCatalogEventListener, UserProfileUpdatedEventListener) are auto-resolved by the NC DI container so no factory registration needed. Closes #333 --- lib/AppInfo/Application.php | 4 +- lib/Controller/ContactpersonenController.php | 8 +-- .../SoftwareCatalogEventListener.php | 29 +++++----- .../UserProfileUpdatedEventListener.php | 24 ++++---- lib/Service/ContactpersoonService.php | 30 +++++----- lib/Service/GebruikSyncService.php | 21 +++++-- lib/Service/OrganizationSyncService.php | 57 +++++++++++-------- 7 files changed, 102 insertions(+), 71 deletions(-) diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index 94c541ca..154d468b 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -279,6 +279,7 @@ function ($container) { settingsService: $container->get(SettingsService::class), db: $container->get(IDBConnection::class), contactpersonHandler: $container->get(ContactPersonHandler::class), + container: $container, ); } ); @@ -289,7 +290,8 @@ function ($container) { function ($container) { return new GebruikSyncService( logger: $container->get('Psr\Log\LoggerInterface'), - settingsService: $container->get(SettingsService::class) + settingsService: $container->get(SettingsService::class), + container: $container ); } ); diff --git a/lib/Controller/ContactpersonenController.php b/lib/Controller/ContactpersonenController.php index 796741bf..dda3803c 100644 --- a/lib/Controller/ContactpersonenController.php +++ b/lib/Controller/ContactpersonenController.php @@ -180,7 +180,7 @@ public function getContactpersonen(string $organisationId): JSONResponse try { // Get object service. - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Search for contactpersonen belonging to this organisation. // Use a more generic search that doesn't require specific register/schema. @@ -288,7 +288,7 @@ public function convertToUser(string $contactpersoonId): JSONResponse try { // Get object service. - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Find the contactpersoon object — bind to current tenant. $contactpersoonObject = $objectService->find( @@ -880,7 +880,7 @@ public function getUserInfo(string $contactpersoonId): JSONResponse ); // Get contactpersoon from OpenRegister. - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // First try to find the object by UUID. $contactObject = $objectService->find( @@ -1356,7 +1356,7 @@ public function getMe(): JSONResponse // Try to get contactpersoon data for additional profile info. try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Search for contactpersoon by username (which is the email). $searchParams = [ diff --git a/lib/EventListener/SoftwareCatalogEventListener.php b/lib/EventListener/SoftwareCatalogEventListener.php index 049a8dd8..824cc051 100644 --- a/lib/EventListener/SoftwareCatalogEventListener.php +++ b/lib/EventListener/SoftwareCatalogEventListener.php @@ -31,6 +31,7 @@ use OCA\OpenRegister\Event\ObjectLockedEvent; use OCA\OpenRegister\Event\ObjectUnlockedEvent; use OCA\OpenRegister\Event\ObjectRevertedEvent; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; /** @@ -55,10 +56,12 @@ class SoftwareCatalogEventListener implements IEventListener { /** * Constructor for SoftwareCatalogEventListener + * + * @param ContainerInterface $container DI container for lazy service resolution. */ - public function __construct() - { - // Empty constructor - we'll get services from the server container. + public function __construct( + private readonly ContainerInterface $container + ) { }//end __construct() /** @@ -76,9 +79,9 @@ public function __construct() public function handle(Event $event): void { try { - $logger = \OC::$server->get(LoggerInterface::class); - $contactSvc = \OC::$server->get(ContactpersoonService::class); - $settingsService = \OC::$server->get(SettingsService::class); + $logger = $this->container->get(LoggerInterface::class); + $contactSvc = $this->container->get(ContactpersoonService::class); + $settingsService = $this->container->get(SettingsService::class); $logger->info( 'SoftwareCatalog: Processing event', @@ -122,7 +125,7 @@ public function handle(Event $event): void }//end if } catch (\Exception $e) { try { - $logger = \OC::$server->get(LoggerInterface::class); + $logger = $this->container->get(LoggerInterface::class); $logger->error( 'SoftwareCatalog: Error in event handler', [ @@ -229,7 +232,7 @@ private function handleObjectCreated( try { // Process organization with OrganizationSyncService. - $orgSyncService = \OC::$server->get('OCA\SoftwareCatalog\Service\OrganizationSyncService'); + $orgSyncService = $this->container->get('OCA\SoftwareCatalog\Service\OrganizationSyncService'); $result = $orgSyncService->processSpecificOrganization($object); $logger->info( @@ -274,7 +277,7 @@ private function handleObjectCreated( try { // Process gebruik object with GebruikSyncService. - $gebruikSyncService = \OC::$server->get(GebruikSyncService::class); + $gebruikSyncService = $this->container->get(GebruikSyncService::class); $result = $gebruikSyncService->processSpecificGebruik($object); $logger->info( @@ -428,7 +431,7 @@ private function handleObjectUpdated( $register = $voorzieningenConfig['register'] ?? ''; $organizationSchema = $voorzieningenConfig['organisatie_schema'] ?? ''; - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $orgWithContacts = $objectService->find( id: $objectId, register: $register, @@ -450,7 +453,7 @@ private function handleObjectUpdated( ); // Process organization with OrganizationSyncService. - $orgSyncService = \OC::$server->get('OCA\SoftwareCatalog\Service\OrganizationSyncService'); + $orgSyncService = $this->container->get('OCA\SoftwareCatalog\Service\OrganizationSyncService'); $result = $orgSyncService->processSpecificOrganization($orgWithContacts); $logger->info( @@ -590,7 +593,7 @@ private function handleObjectUpdated( try { // Process gebruik object with GebruikSyncService. - $gebruikSyncService = \OC::$server->get(GebruikSyncService::class); + $gebruikSyncService = $this->container->get(GebruikSyncService::class); $result = $gebruikSyncService->processSpecificGebruik($object); $logger->info( @@ -689,7 +692,7 @@ private function handleObjectDeleted( try { // For deletions, we may need to handle cleanup regardless of status. // The OrganizationSyncService can determine what cleanup is needed. - $orgSyncService = \OC::$server->get('OCA\SoftwareCatalog\Service\OrganizationSyncService'); + $orgSyncService = $this->container->get('OCA\SoftwareCatalog\Service\OrganizationSyncService'); // Note: processSpecificOrganization may handle cleanup for deleted organizations. // The service can check if the organization exists and handle accordingly. diff --git a/lib/EventListener/UserProfileUpdatedEventListener.php b/lib/EventListener/UserProfileUpdatedEventListener.php index 42e1df2d..6db1a966 100644 --- a/lib/EventListener/UserProfileUpdatedEventListener.php +++ b/lib/EventListener/UserProfileUpdatedEventListener.php @@ -23,6 +23,7 @@ use OCA\SoftwareCatalog\Service\SettingsService; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; /** @@ -49,9 +50,12 @@ class UserProfileUpdatedEventListener implements IEventListener /** * Constructor for UserProfileUpdatedEventListener. + * + * @param ContainerInterface $container DI container for lazy service resolution. */ - public function __construct() - { + public function __construct( + private readonly ContainerInterface $container + ) { }//end __construct() /** @@ -70,7 +74,7 @@ public function handle(Event $event): void } try { - $logger = \OC::$server->get(LoggerInterface::class); + $logger = $this->container->get(LoggerInterface::class); $changes = $event->getChanges(); // Check if any of the mapped fields were changed. @@ -97,7 +101,7 @@ public function handle(Event $event): void $this->syncToContactpersoon(event: $event, logger: $logger); } catch (\Exception $e) { try { - $logger = \OC::$server->get(LoggerInterface::class); + $logger = $this->container->get(LoggerInterface::class); $logger->error( '[UserProfileUpdatedEventListener] Error syncing profile to contactpersoon', [ @@ -129,8 +133,8 @@ public function handle(Event $event): void */ private function syncToContactpersoon(UserProfileUpdatedEvent $event, LoggerInterface $logger): void { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); - $settingsService = \OC::$server->get(SettingsService::class); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + $settingsService = $this->container->get(SettingsService::class); // Get the voorzieningen config for register and schema. $voorzieningenConfig = $settingsService->getVoorzieningenConfig(); @@ -224,9 +228,9 @@ private function syncToContactpersoon(UserProfileUpdatedEvent $event, LoggerInte // Regenerate _name metadata from the schema's objectNameField template. // (e.g. "{{ voornaam }} {{ tussenvoegsel }} {{ achternaam }}"). // Without this, _name stays stale after field updates because we bypass the full saveObject flow. - $schemaMapper = \OC::$server->get('OCA\OpenRegister\Db\SchemaMapper'); - $registerMapper = \OC::$server->get('OCA\OpenRegister\Db\RegisterMapper'); - $metaHydrationHandler = \OC::$server->get('OCA\OpenRegister\Service\Object\SaveObject\MetadataHydrationHandler'); + $schemaMapper = $this->container->get('OCA\OpenRegister\Db\SchemaMapper'); + $registerMapper = $this->container->get('OCA\OpenRegister\Db\RegisterMapper'); + $metaHydrationHandler = $this->container->get('OCA\OpenRegister\Service\Object\SaveObject\MetadataHydrationHandler'); $schemaEntity = null; $registerEntity = null; @@ -262,7 +266,7 @@ private function syncToContactpersoon(UserProfileUpdatedEvent $event, LoggerInte // Pass register and schema so the magic mapper route is triggered and the. // Per-schema magic table is updated (not just the blob table). - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update(entity: $contactpersoon, register: $registerEntity, schema: $schemaEntity); $logger->info( diff --git a/lib/Service/ContactpersoonService.php b/lib/Service/ContactpersoonService.php index 195eb9cf..88847bcb 100644 --- a/lib/Service/ContactpersoonService.php +++ b/lib/Service/ContactpersoonService.php @@ -166,7 +166,7 @@ public function processContactpersoon(object $contactpersoonObject, bool $isUpda $username = $email; // Check if user already exists. - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $user = $userManager->get($username); if ($user === null) { @@ -177,7 +177,7 @@ public function processContactpersoon(object $contactpersoonObject, bool $isUpda // Look up organization entity, creating backup if missing. $organisationEntity = null; try { - $organisationMapper = \OC::$server->get('OCA\OpenRegister\Db\OrganisationMapper'); + $organisationMapper = $this->container->get('OCA\OpenRegister\Db\OrganisationMapper'); $organisationEntity = $organisationMapper->findByUuid($organizationUuid); } catch (\OCP\AppFramework\Db\DoesNotExistException $e) { // Org entity missing — try backup creation from org object. @@ -189,8 +189,8 @@ public function processContactpersoon(object $contactpersoonObject, bool $isUpda ] ); try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); - $settingsService = \OC::$server->get('OCA\SoftwareCatalog\Service\SettingsService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); + $settingsService = $this->container->get('OCA\SoftwareCatalog\Service\SettingsService'); $voorzieningenConfig = $settingsService->getVoorzieningenConfig(); $orgObject = $objectService->find( id: $organizationUuid, @@ -204,7 +204,7 @@ public function processContactpersoon(object $contactpersoonObject, bool $isUpda $orgStatus = strtolower(($orgData['status'] ?? '')); if (in_array(needle: $orgStatus, haystack: ['actief', 'active']) === true) { $syncServiceClass = 'OCA\SoftwareCatalog\Service\OrganizationSyncService'; - $organizationSyncService = \OC::$server->get($syncServiceClass); + $organizationSyncService = $this->container->get($syncServiceClass); $backupStats = [ 'entitiesCreated' => 0, 'entitiesUpdated' => 0, @@ -391,7 +391,7 @@ public function processContactpersoon(object $contactpersoonObject, bool $isUpda public function updateUserGroups(object $contactpersoonObject, string $username): void { // Use the new organization type-based logic instead of old role-based logic. - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $user = $userManager->get($username); if ($user === null) { $this->logger->warning('User not found for group update', ['username' => $username]); @@ -486,7 +486,7 @@ private function updateContactpersoonUsername(object $contactpersoonObject, stri // To avoid validation errors on the organisatie field (stored as UUID string but. // Schema expects object type) and to avoid triggering ObjectUpdatedEvent cascades. // That could interfere with the ongoing org activation process. - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactpersoonObject); $this->logger->info( @@ -612,7 +612,7 @@ private function syncNameFieldsToUser(object $contactpersoonObject, ?object $old return; } - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $user = $userManager->get($username); if ($user === null) { @@ -735,7 +735,7 @@ public function handleContactDeletion(object $contactObject): void ); // Get user manager to disable the user. - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $user = $userManager->get($username); if ($user === null) { @@ -868,7 +868,7 @@ public function getContactPersonsWithUserDetailsForOrganization(string $organiza ); // Get user manager to fetch user details. - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $enhancedContactPersons = []; // Loop through each contact person and fetch user details. @@ -1007,7 +1007,7 @@ public function getBulkUserInfo(array $contactpersoonIds): array ); $bulkUserInfo = []; - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); // Get contact person register and schema from settings. $contactRegister = null; @@ -1086,7 +1086,7 @@ public function getBulkUserInfo(array $contactpersoonIds): array } if ($user !== null) { - $groupManager = \OC::$server->get('OCP\IGroupManager'); + $groupManager = $this->container->get('OCP\IGroupManager'); $userGroups = $groupManager->getUserGroups($user); $userInfo['groups'] = array_keys($userGroups); $userInfo['enabled'] = $user->isEnabled(); @@ -1233,7 +1233,7 @@ private function updateContactpersoonObjectOwner(object $contactObject, string $ // FIX #434: Use MagicMapper directly instead of ObjectService::saveObject(). // To avoid validation errors on the organisatie field (stored as UUID string but. // Schema expects object type) and to avoid triggering ObjectUpdatedEvent cascades. - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactObject); $this->logger->info( @@ -1301,7 +1301,7 @@ public function enableUserForContactpersoon(string $contactpersoonId): void throw new \Exception('No username found for contactpersoon'); } - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $user = $userManager->get($username); if ($user === null) { @@ -1373,7 +1373,7 @@ public function disableUserForContactpersoon(string $contactpersoonId): void throw new \Exception('No username found for contactpersoon'); } - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $user = $userManager->get($username); if ($user === null) { diff --git a/lib/Service/GebruikSyncService.php b/lib/Service/GebruikSyncService.php index 9c0f1b42..26a2c892 100644 --- a/lib/Service/GebruikSyncService.php +++ b/lib/Service/GebruikSyncService.php @@ -23,6 +23,7 @@ namespace OCA\SoftwareCatalog\Service; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; use OCA\SoftwareCatalog\Service\SettingsService; use OCA\OpenRegister\Db\ObjectEntity; @@ -68,18 +69,28 @@ class GebruikSyncService */ private SettingsService $settingsService; + /** + * Container for lazy service resolution. + * + * @var ContainerInterface + */ + private ContainerInterface $container; + /** * Constructor for GebruikSyncService. * - * @param LoggerInterface $logger Logger for debugging and error reporting - * @param SettingsService $settingsService Service for retrieving configuration settings + * @param LoggerInterface $logger Logger for debugging and error reporting + * @param SettingsService $settingsService Service for retrieving configuration settings + * @param ContainerInterface $container DI container for lazy service resolution */ public function __construct( LoggerInterface $logger, - SettingsService $settingsService + SettingsService $settingsService, + ContainerInterface $container ) { $this->logger = $logger; $this->settingsService = $settingsService; + $this->container = $container; }//end __construct() /** @@ -317,7 +328,7 @@ private function processAmefElements(ObjectEntity $gebruikObject): array */ private function searchAmefElementsByIds(array $ids, string $register, string $schema): array { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $foundElements = []; foreach ($ids as $id) { @@ -496,7 +507,7 @@ private function updateStatusBasedOnDates(ObjectEntity $gebruikObject): array private function updateGebruikObject(ObjectEntity $gebruikObject, array $updatedData): void { try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Get voorzieningenConfig to find the correct register and schema. $voorzieningenConfig = $this->settingsService->getVoorzieningenConfig(); diff --git a/lib/Service/OrganizationSyncService.php b/lib/Service/OrganizationSyncService.php index 5640abb7..6c1cf039 100644 --- a/lib/Service/OrganizationSyncService.php +++ b/lib/Service/OrganizationSyncService.php @@ -28,6 +28,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IAppConfig; use OCP\IDBConnection; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; /** @@ -104,6 +105,13 @@ class OrganizationSyncService */ private LoggerInterface $logger; + /** + * Container instance for lazy service resolution. + * + * @var ContainerInterface + */ + private ContainerInterface $container; + /** * Constructor for OrganizationSyncService * @@ -115,6 +123,7 @@ class OrganizationSyncService * @param SettingsService $settingsService The settings service. * @param IDBConnection $db The database connection. * @param ContactPersonHandler $contactpersonHandler The contact person handler. + * @param ContainerInterface $container The DI container. */ public function __construct( OrganisatieService $organisatieService, @@ -125,6 +134,7 @@ public function __construct( SettingsService $settingsService, private IDBConnection $db, private readonly ContactPersonHandler $contactpersonHandler, + ContainerInterface $container, ) { $this->organisatieService = $organisatieService; $this->contactpersoonService = $contactpersoonService; @@ -132,6 +142,7 @@ public function __construct( $this->config = $config; $this->logger = $logger; $this->settingsService = $settingsService; + $this->container = $container; }//end __construct() @@ -279,7 +290,7 @@ public function performOrganizationsSync(int $batchSize=50, int $maxExecutionSec $rows = $qb->execute()->fetchAll(); - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); if ($objectService instanceof ObjectService === false) { $this->logger->error('OrganizationSync: could not resolve ObjectService'); return $stats; @@ -398,7 +409,7 @@ public function performContactSync(int $batchSize=100, int $maxExecutionSeconds= $this->logger->info('ContactSync: processing '.count($contacts).' contacts with existing NC accounts'); - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); if ($objectService instanceof ObjectService === false) { $this->logger->error('ContactSync: could not resolve ObjectService'); return $stats; @@ -649,7 +660,7 @@ public function performFullSync(int $minutesBack=10): array private function getOrganisatieObjectsByTimeWindow(string $register, string $organizationSchema, int $minutesBack): array { try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Build base query for register and schema. $query = [ @@ -835,7 +846,7 @@ private function ensureOrganisationEntity(object $organisatieObject, array &$sta // Fetch the complete object from the database to ensure we have all data. try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $fullObject = $objectService->find( id: $organisatieId, register: $organisatieObject->getRegister(), @@ -874,7 +885,7 @@ private function ensureOrganisationEntity(object $organisatieObject, array &$sta $organizationSchema = ($voorzieningenConfig['organisatie_schema'] ?? ''); // Try to find existing organisation entity. - $organisationMapper = \OC::$server->get('OCA\OpenRegister\Db\OrganisationMapper'); + $organisationMapper = $this->container->get('OCA\OpenRegister\Db\OrganisationMapper'); try { $organisationEntity = $organisationMapper->findByUuid($organisatieId); @@ -1130,7 +1141,7 @@ private function getContactPersonsForOrganisation(string $organisatieId, string } try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Use searchObjects for more efficient filtering on-demand. $query = [ @@ -1196,7 +1207,7 @@ private function processContactPerson(object $contactPerson, array &$stats): ?st } // Check if user already exists. - $userManager = \OC::$server->get('OCP\IUserManager'); + $userManager = $this->container->get('OCP\IUserManager'); $username = $email; if (empty($existingUsername) === false) { } @@ -1299,7 +1310,7 @@ private function updateOrganisationEntityUsers(object $organisationEntity, array $organisationEntity->setUsers($allUsernames); - $organisationMapper = \OC::$server->get('OCA\OpenRegister\Db\OrganisationMapper'); + $organisationMapper = $this->container->get('OCA\OpenRegister\Db\OrganisationMapper'); $organisationMapper->save($organisationEntity); $stats['entitiesUpdated']++; @@ -1342,7 +1353,7 @@ private function updateOrganisationEntityUsers(object $organisationEntity, array private function getAdminUsers(): array { try { - $groupManager = \OC::$server->get('OCP\IGroupManager'); + $groupManager = $this->container->get('OCP\IGroupManager'); $adminGroup = $groupManager->get('admin'); if (empty($adminGroup) === false) { @@ -1405,7 +1416,7 @@ public function getSyncStatus(int $minutesBack=10): array ); // Get organization entities count. - $organisationMapper = \OC::$server->get('OCA\OpenRegister\Db\OrganisationMapper'); + $organisationMapper = $this->container->get('OCA\OpenRegister\Db\OrganisationMapper'); $entitiesCount = 0; try { $entities = $organisationMapper->findAllWithUserCount(); @@ -1748,7 +1759,7 @@ private function processNestedContactPersons($organizationObject, array &$stats) ); // Fetch the contact person object using the UUID. - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $contactObject = $objectService->find( id: $contactData, register: $register, @@ -1867,7 +1878,7 @@ private function processRelatedContactPersons(string $organizationUuid, $organiz } // Find all contactpersoon objects that have this organization in their organisation property. - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); // Search for contactpersoon objects with this organization reference. // Try both 'organisatie' and 'organisation' field names. @@ -2049,7 +2060,7 @@ private function processRelatedContactPersons(string $organizationUuid, $organiz if (empty($contactData['organisatie']) === true) { $contactData['organisatie'] = $organizationUuid; $contactObject->setObject($contactData); - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactObject); $this->logger->info( '[FLOW] Set missing organisatie field on related contact', @@ -2130,7 +2141,7 @@ private function createOrUpdateContactPersonObject( array &$stats ): void { try { - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $email = ($contactData['email'] ?? $contactData['e-mailadres'] ?? ''); if (empty($email) === true) { @@ -2212,7 +2223,7 @@ private function createOrUpdateContactPersonObject( $restoredData = $contactObject->getObject(); $restoredData['organisatie'] = $savedOrganisatie; $contactObject->setObject($restoredData); - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactObject); } }//end if @@ -2226,7 +2237,7 @@ private function createOrUpdateContactPersonObject( $contactObjectData['organisatie'] = $organizationUuid; $contactObject->setObject($contactObjectData); $contactObject->setOrganisation($organizationUuid); - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactObject); $this->logger->info( '[FLOW] Set missing organisatie field on contact person', @@ -2253,7 +2264,7 @@ private function createOrUpdateContactPersonObject( // Check if organization exists in organisation entity table. $organisationEntity = null; try { - $organisationMapper = \OC::$server->get('OCA\OpenRegister\Db\OrganisationMapper'); + $organisationMapper = $this->container->get('OCA\OpenRegister\Db\OrganisationMapper'); $organisationEntity = $organisationMapper->findByUuid($organizationUuid); } catch (\OCP\AppFramework\Db\DoesNotExistException $e) { // Backup: org entity missing — create it now so user creation can proceed. @@ -2345,7 +2356,7 @@ private function createOrUpdateContactPersonObject( ); try { - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactObject); $this->logger->info( 'Contact saved with username', @@ -2508,7 +2519,7 @@ public function processSpecificContactPerson($contactObject): array // Check if organization exists in organisation entity table. $organisationEntity = null; try { - $organisationMapper = \OC::$server->get('OCA\OpenRegister\Db\OrganisationMapper'); + $organisationMapper = $this->container->get('OCA\OpenRegister\Db\OrganisationMapper'); $organisationEntity = $organisationMapper->findByUuid($organizationUuid); } catch (\OCP\AppFramework\Db\DoesNotExistException $e) { // Backup: org entity missing — create it now so user creation can proceed. @@ -2521,7 +2532,7 @@ public function processSpecificContactPerson($contactObject): array ); try { $voorzieningenConfig = $this->settingsService->getVoorzieningenConfig(); - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $orgObject = $objectService->find( id: $organizationUuid, register: ($voorzieningenConfig['register'] ?? ''), @@ -2585,7 +2596,7 @@ public function processSpecificContactPerson($contactObject): array // that may fail — but the user was already created successfully above. try { $contactObject->setObject($contactEntityObject); - $objectService = \OC::$server->get('OCA\OpenRegister\Service\ObjectService'); + $objectService = $this->container->get('OCA\OpenRegister\Service\ObjectService'); $objectService->saveObject( object: $contactObject, register: $register, @@ -3072,7 +3083,7 @@ private function updateOrganisatieObjectOwner( $organisatieObject->setOrganisation($organisationEntityUuid); // Save using MagicMapper directly to bypass validation and ensure metadata is persisted. - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($organisatieObject); $this->logger->info( @@ -3195,7 +3206,7 @@ private function updateContactpersoonObjectOwner( } // Save using MagicMapper directly to bypass validation and ensure metadata is persisted. - $objectMapper = \OC::$server->get('OCA\OpenRegister\Db\MagicMapper'); + $objectMapper = $this->container->get('OCA\OpenRegister\Db\MagicMapper'); $objectMapper->update($contactObject); $this->logger->info(