diff options
author | Roeland Jago Douma <rullzer@users.noreply.github.com> | 2021-01-29 13:19:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-29 13:19:05 +0100 |
commit | 13c7a92789099c77f525f56bf6fc9c11c952250c (patch) | |
tree | b3c9c9aa152d0d0c9eb12e65ccbb043c5370b133 | |
parent | 65b6b4597685c2b097a8690cc9fe424bcefd4649 (diff) | |
parent | 222d8e6c1a57cbc322e3df36ffedbee70721e1f7 (diff) | |
download | nextcloud-server-13c7a92789099c77f525f56bf6fc9c11c952250c.tar.gz nextcloud-server-13c7a92789099c77f525f56bf6fc9c11c952250c.zip |
Merge pull request #25377 from nextcloud/bugfix/noid/template-skeleton
Fix initializing the template directory on first login
-rw-r--r-- | lib/private/Files/Template/TemplateManager.php | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/private/Files/Template/TemplateManager.php b/lib/private/Files/Template/TemplateManager.php index 813f3fe83e9..491d66d53e9 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; @@ -44,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; @@ -58,6 +60,7 @@ class TemplateManager implements ITemplateManager { private $serverContainer; private $eventDispatcher; private $rootFolder; + private $userManager; private $previewManager; private $config; private $l10n; @@ -73,6 +76,7 @@ class TemplateManager implements ITemplateManager { Coordinator $coordinator, IRootFolder $rootFolder, IUserSession $userSession, + IUserManager $userManager, IPreview $previewManager, IConfig $config, IFactory $l10nFactory, @@ -82,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; @@ -258,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); @@ -272,7 +277,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); } @@ -303,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; } @@ -313,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; } |