getUser(); if ($user) { $node = $rootFolder->getUserFolder($user->getUID())->getFirstNodeById((int)$name); return $node !== null; } else { return false; } }, function (string $name) use ($rootFolder, $userSession): bool { $user = $userSession->getUser(); if ($user) { $nodes = $rootFolder->getUserFolder($user->getUID())->getById((int)$name); foreach ($nodes as $node) { if (($node->getPermissions() & Constants::PERMISSION_UPDATE) === Constants::PERMISSION_UPDATE) { return true; } } return false; } else { return false; } }, ), ]; $event = new SystemTagsEntityEvent(); $dispatcher->dispatch(SystemTagsEntityEvent::EVENT_ENTITY, $event); $dispatcher->dispatchTyped($event); foreach ($event->getEntityCollections() as $entity => $entityExistsFunction) { $children[] = new SystemTagsObjectTypeCollection( $entity, $tagManager, $tagMapper, $userSession, $groupManager, $entityExistsFunction, fn ($name) => true, ); } parent::__construct('root', $children); } public function getName() { return 'systemtags-relations'; } public function setName($name) { throw new Forbidden('Permission denied to rename this collection'); } }