diff --git a/lib/private/TaskProcessing/Manager.php b/lib/private/TaskProcessing/Manager.php index 5e58fe180939c..655142e49a259 100644 --- a/lib/private/TaskProcessing/Manager.php +++ b/lib/private/TaskProcessing/Manager.php @@ -36,6 +36,7 @@ use OCP\IConfig; use OCP\IL10N; use OCP\IServerContainer; +use OCP\IUserManager; use OCP\L10N\IFactory; use OCP\Lock\LockedException; use OCP\SpeechToText\ISpeechToTextProvider; @@ -280,14 +281,20 @@ public function getOutputShape(): array { private function _getTextToImageProviders(): array { $oldProviders = $this->textToImageManager->getProviders(); $newProviders = []; + $userManager = \OCP\Server::get(IUserManager::class); foreach ($oldProviders as $oldProvider) { - $newProvider = new class($oldProvider, $this->appData) implements IProvider, ISynchronousProvider { + $newProvider = new class($oldProvider, $this->appData, $this->l10nFactory, $userManager) implements IProvider, ISynchronousProvider { private \OCP\TextToImage\IProvider $provider; private IAppData $appData; + private IFactory $l10nFactory; - public function __construct(\OCP\TextToImage\IProvider $provider, IAppData $appData) { + private IUserManager $userManager; + + public function __construct(\OCP\TextToImage\IProvider $provider, IAppData $appData, IFactory $l10nFactory, IUserManager $userManager) { $this->provider = $provider; $this->appData = $appData; + $this->l10nFactory = $l10nFactory; + $this->userManager = $userManager; } public function getId(): string { @@ -320,6 +327,16 @@ public function process(?string $userId, array $input, callable $reportProgress) } catch (\OCP\Files\NotFoundException) { $folder = $this->appData->newFolder('text2image'); } + if ($input['numberOfImages'] > 12) { + throw new ProcessingException( + 'numberOfImages cannot be greater than 12' + ); + } + if ($input['numberOfImages'] < 1) { + throw new ProcessingException( + 'numberOfImages must be greater than 0' + ); + } $resources = []; $files = []; for ($i = 0; $i < $input['numberOfImages']; $i++) {