aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulius Knorr <jus@bitgrid.net>2024-09-10 09:43:42 +0200
committerJulius Knorr <jus@bitgrid.net>2024-09-10 10:13:20 +0200
commitfa1f0022fa73e851bc301d731e4fc9c3cde217d5 (patch)
tree646fe638717b4a922872ac978072d985f194d77a
parentbfb9c9b55c7716c4527721e479a7cdeb6342c6bc (diff)
downloadnextcloud-server-fa1f0022fa73e851bc301d731e4fc9c3cde217d5.tar.gz
nextcloud-server-fa1f0022fa73e851bc301d731e4fc9c3cde217d5.zip
fix: Only write once to template instead of create/copybackport/47860/stable28
Signed-off-by: Julius Knorr <jus@bitgrid.net>
-rw-r--r--lib/private/Files/Template/TemplateManager.php4
1 files changed, 1 insertions, 3 deletions
diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php
index 9d9f6416208..04ebcdf66a3 100644
--- a/lib/private/Files/Template/TemplateManager.php
+++ b/lib/private/Files/Template/TemplateManager.php
@@ -159,11 +159,9 @@ class TemplateManager implements ITemplateManager {
throw new GenericFileException($this->l10n->t('Invalid path'));
}
$folder = $userFolder->get(dirname($filePath));
- $targetFile = $folder->newFile(basename($filePath));
$template = null;
if ($templateType === 'user' && $templateId !== '') {
$template = $userFolder->get($templateId);
- $template->copy($targetFile->getPath());
} else {
$matchingProvider = array_filter($this->getRegisteredProviders(), function (ICustomTemplateProvider $provider) use ($templateType) {
return $templateType === get_class($provider);
@@ -171,9 +169,9 @@ class TemplateManager implements ITemplateManager {
$provider = array_shift($matchingProvider);
if ($provider) {
$template = $provider->getCustomTemplate($templateId);
- $template->copy($targetFile->getPath());
}
}
+ $targetFile = $folder->newFile(basename($filePath), ($template instanceof File ? $template->fopen('rb') : null));
$this->eventDispatcher->dispatchTyped(new FileCreatedFromTemplateEvent($template, $targetFile));
return $this->formatFile($userFolder->get($filePath));
} catch (\Exception $e) {