From 39a4b1c4011ba9b9f5c88679baadd79c8d1cf343 Mon Sep 17 00:00:00 2001 From: Julius Härtl Date: Fri, 29 Jan 2021 08:43:17 +0100 Subject: Normalize compared path to avoid renaming to the same directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Files/Template/TemplateManager.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/private') diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php index 813f3fe83e9..277411279f6 100644 --- a/lib/private/Files/Template/TemplateManager.php +++ b/lib/private/Files/Template/TemplateManager.php @@ -28,6 +28,7 @@ namespace OC\Files\Template; use OC\AppFramework\Bootstrap\Coordinator; use OC\Files\Cache\Scanner; +use OC\Files\Filesystem; use OCP\EventDispatcher\IEventDispatcher; use OCP\Files\Folder; use OCP\Files\File; @@ -272,7 +273,7 @@ class TemplateManager implements ITemplateManager { if (!$userFolder->nodeExists('Templates')) { return ''; } - $newPath = $userFolder->getPath() . '/' . $userTemplatePath; + $newPath = Filesystem::normalizePath($userFolder->getPath() . '/' . $userTemplatePath); if ($newPath !== $userFolder->get('Templates')->getPath()) { $userFolder->get('Templates')->move($newPath); } -- cgit v1.2.3 From 0d384dedaa42093c7181e39d580a8fcf25ebb143 Mon Sep 17 00:00:00 2001 From: Julius Härtl Date: Fri, 29 Jan 2021 08:56:32 +0100 Subject: Obtain the user language from the passed in user id MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Files/Template/TemplateManager.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'lib/private') diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php index 277411279f6..d06fb68b4d9 100644 --- a/lib/private/Files/Template/TemplateManager.php +++ b/lib/private/Files/Template/TemplateManager.php @@ -45,6 +45,7 @@ use OCP\Files\Template\TemplateFileCreator; use OCP\IConfig; use OCP\IPreview; use OCP\IServerContainer; +use OCP\IUserManager; use OCP\IUserSession; use OCP\L10N\IFactory; use Psr\Log\LoggerInterface; @@ -59,6 +60,7 @@ class TemplateManager implements ITemplateManager { private $serverContainer; private $eventDispatcher; private $rootFolder; + private $userManager; private $previewManager; private $config; private $l10n; @@ -74,6 +76,7 @@ class TemplateManager implements ITemplateManager { Coordinator $coordinator, IRootFolder $rootFolder, IUserSession $userSession, + IUserManager $userManager, IPreview $previewManager, IConfig $config, IFactory $l10nFactory, @@ -83,6 +86,7 @@ class TemplateManager implements ITemplateManager { $this->eventDispatcher = $eventDispatcher; $this->bootstrapCoordinator = $coordinator; $this->rootFolder = $rootFolder; + $this->userManager = $userManager; $this->previewManager = $previewManager; $this->config = $config; $this->l10nFactory = $l10nFactory; @@ -259,7 +263,7 @@ class TemplateManager implements ITemplateManager { $skeletonTemplatePath = $this->config->getSystemValue('templatedirectory', $defaultTemplateDirectory); $isDefaultSkeleton = $skeletonPath === $defaultSkeletonDirectory; $isDefaultTemplates = $skeletonTemplatePath === $defaultTemplateDirectory; - $userLang = $this->l10nFactory->getUserLanguage(); + $userLang = $this->l10nFactory->getUserLanguage($this->userManager->get($this->userId)); try { $l10n = $this->l10nFactory->get('lib', $userLang); -- cgit v1.2.3 From 222d8e6c1a57cbc322e3df36ffedbee70721e1f7 Mon Sep 17 00:00:00 2001 From: Julius Härtl Date: Fri, 29 Jan 2021 09:40:46 +0100 Subject: Use proper path for scanner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Files/Template/TemplateManager.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/private') diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php index d06fb68b4d9..491d66d53e9 100644 --- a/lib/private/Files/Template/TemplateManager.php +++ b/lib/private/Files/Template/TemplateManager.php @@ -308,7 +308,7 @@ class TemplateManager implements ITemplateManager { $localizedSkeletonTemplatePath = $this->getLocalizedTemplatePath($skeletonTemplatePath, $userLang); if (!empty($localizedSkeletonTemplatePath) && file_exists($localizedSkeletonTemplatePath)) { \OC_Util::copyr($localizedSkeletonTemplatePath, $folder); - $userFolder->getStorage()->getScanner()->scan($userTemplatePath, Scanner::SCAN_RECURSIVE); + $userFolder->getStorage()->getScanner()->scan($folder->getInternalPath(), Scanner::SCAN_RECURSIVE); $this->setTemplatePath($userTemplatePath); return $userTemplatePath; } @@ -318,7 +318,7 @@ class TemplateManager implements ITemplateManager { $localizedSkeletonPath = $this->getLocalizedTemplatePath($skeletonPath . '/Templates', $userLang); if (!empty($localizedSkeletonPath) && file_exists($localizedSkeletonPath)) { \OC_Util::copyr($localizedSkeletonPath, $folder); - $userFolder->getStorage()->getScanner()->scan($userTemplatePath, Scanner::SCAN_RECURSIVE); + $userFolder->getStorage()->getScanner()->scan($folder->getInternalPath(), Scanner::SCAN_RECURSIVE); $this->setTemplatePath($userTemplatePath); return $userTemplatePath; } -- cgit v1.2.3