From 2ce1274bc00182d1382d0dfed2baa60ffa23b63d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Joshua=20R=C3=BCsweg?= Date: Thu, 22 Nov 2018 11:01:43 +0100 Subject: [PATCH] Add requiredObjectType option for user content provider See #2716 --- .../worker/UserContentRemoveWorker.class.php | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php b/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php index 5b6a772f71..32d695acf2 100644 --- a/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php +++ b/wcfsetup/install/files/lib/system/worker/UserContentRemoveWorker.class.php @@ -120,6 +120,27 @@ class UserContentRemoveWorker extends AbstractWorker implements IWorker { return 0; }); + // add the required object types for the select content provider + if (is_array($this->contentProvider)) { + foreach ($this->contentProvider as $contentProvider) { + $objectType = ObjectTypeCache::getInstance()->getObjectTypeByName('com.woltlab.wcf.content.userContentProvider', $contentProvider); + + if ($objectType->requiredObjectType !== null) { + $objectTypeNames = explode(',', $objectType->requiredObjectType); + + foreach ($objectTypeNames as $objectTypeName) { + $objectType = ObjectTypeCache::getInstance()->getObjectTypeByName('com.woltlab.wcf.content.userContentProvider', $objectTypeName); + + if ($objectType === null) { + throw new \RuntimeException('Unknown required object type "' . $objectTypeName . '" for object type "' . $contentProvider . '" given.'); + } + + $this->contentProvider[] = $objectType; + } + } + } + } + foreach ($contentProviders as $contentProvider) { if ($this->contentProvider === null || (is_array($this->contentProvider) && in_array($contentProvider->objectType, $this->contentProvider))) { /** @var IUserContentProvider $processor */ -- 2.20.1