From dc8e819915acc045bcbc67df098231db30ffb240 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Julius=20H=C3=A4rtl?= <jus@bitgrid.net>
Date: Wed, 31 Mar 2021 16:21:40 +0200
Subject: [PATCH] Properly handle creating the template directory in a
 subfolder (fixes #25787)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Julius Härtl <jus@bitgrid.net>
---
 lib/private/Files/Template/TemplateManager.php | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php
index a81851b2757..3dd7f82bff3 100644
--- a/lib/private/Files/Template/TemplateManager.php
+++ b/lib/private/Files/Template/TemplateManager.php
@@ -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;
-- 
GitLab