]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix migration
authorJohn Molakvoæ <skjnldsv@protonmail.com>
Fri, 14 Oct 2022 09:40:24 +0000 (11:40 +0200)
committerVincent Petry <vincent@nextcloud.com>
Fri, 14 Oct 2022 14:18:40 +0000 (16:18 +0200)
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
apps/theming/lib/Jobs/MigrateBackgroundImages.php

index 97806fa600ac9ef25aa07f3b7fb5abef44faef9a..b816a4c8775afd61c50bdc5e9de8b2f8878961fc 100644 (file)
@@ -34,6 +34,7 @@ use OCP\BackgroundJob\QueuedJob;
 use OCP\Files\AppData\IAppDataFactory;
 use OCP\Files\NotFoundException;
 use OCP\Files\NotPermittedException;
+use OCP\Files\SimpleFS\ISimpleFolder;
 use OCP\IConfig;
 
 class MigrateBackgroundImages extends QueuedJob {
@@ -57,7 +58,6 @@ class MigrateBackgroundImages extends QueuedJob {
                        return;
                }
 
-               $themingData = $this->appDataFactory->get(Application::APP_ID);
                $dashboardData = $this->appDataFactory->get('dashboard');
 
                $userIds = $this->config->getUsersForUserValue('theming', 'background', 'custom');
@@ -79,11 +79,8 @@ class MigrateBackgroundImages extends QueuedJob {
 
                                // migration
                                $file = $dashboardData->getFolder($userId)->getFile('background.jpg');
-                               try {
-                                       $targetDir = $themingData->getFolder($userId);
-                               } catch (NotFoundException $e) {
-                                       $targetDir = $themingData->newFolder($userId);
-                               }
+                               $targetDir = $this->getUserFolder($userId);
+
                                if (!$targetDir->fileExists('background.jpg')) {
                                        $targetDir->newFile('background.jpg', $file->getContent());
                                }
@@ -104,4 +101,23 @@ class MigrateBackgroundImages extends QueuedJob {
                        $this->jobList->add(self::class);
                }
        }
+
+       /**
+        * Get the root location for users theming data
+        */
+       protected function getUserFolder(string $userId): ISimpleFolder {
+               $themingData = $this->appDataFactory->get(Application::APP_ID);
+
+               try {
+                       $rootFolder = $themingData->getFolder('users');
+               } catch (NotFoundException $e) {
+                       $rootFolder = $themingData->newFolder('users');
+               }
+
+               try {
+                       return $rootFolder->getFolder($userId);
+               } catch (NotFoundException $e) {
+                       return $rootFolder->newFolder($userId);
+               }
+       }
 }