]> source.dussan.org Git - nextcloud-server.git/commitdiff
Properly handle creating the template directory in a subfolder (fixes #25787) 26406/head
authorJulius Härtl <jus@bitgrid.net>
Wed, 31 Mar 2021 14:21:40 +0000 (16:21 +0200)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Thu, 1 Apr 2021 13:31:55 +0000 (13:31 +0000)
Signed-off-by: Julius Härtl <jus@bitgrid.net>
lib/private/Files/Template/TemplateManager.php

index a81851b2757c087dd42277c4b87aeed15be6ebe6..3dd7f82bff3499acedc9cf42d90fd7d84f1e513a 100644 (file)
@@ -36,7 +36,6 @@ use OCP\Files\GenericFileException;
 use OCP\Files\IRootFolder;
 use OCP\Files\Node;
 use OCP\Files\NotFoundException;
-use OCP\Files\NotPermittedException;
 use OCP\Files\Template\FileCreatedFromTemplateEvent;
 use OCP\Files\Template\ICustomTemplateProvider;
 use OCP\Files\Template\ITemplateManager;
@@ -299,9 +298,10 @@ class TemplateManager implements ITemplateManager {
                        }
 
                        try {
-                               $folder = $userFolder->newFolder($userTemplatePath);
-                       } catch (NotPermittedException $e) {
                                $folder = $userFolder->get($userTemplatePath);
+                       } catch (NotFoundException $e) {
+                               $folder = $userFolder->get(dirname($userTemplatePath));
+                               $folder = $folder->newFolder(basename($userTemplatePath));
                        }
 
                        $folderIsEmpty = count($folder->getDirectoryListing()) === 0;