diff --git a/app/Uploads/ImageService.php b/app/Uploads/ImageService.php index 0199c207e..55c327e7a 100644 --- a/app/Uploads/ImageService.php +++ b/app/Uploads/ImageService.php @@ -88,16 +88,17 @@ class ImageService protected function getStorageDiskName(string $imageType): string { $storageType = config('filesystems.images'); + $localSecureInUse = ($storageType === 'local_secure' || $storageType === 'local_secure_restricted'); // Ensure system images (App logo) are uploaded to a public space - if ($imageType === 'system' && $storageType === 'local_secure') { - $storageType = 'local'; + if ($imageType === 'system' && $localSecureInUse) { + return 'local'; } // Rename local_secure options to get our image specific storage driver which // is scoped to the relevant image directories. - if ($storageType === 'local_secure' || $storageType === 'local_secure_restricted') { - $storageType = 'local_secure_images'; + if ($localSecureInUse) { + return 'local_secure_images'; } return $storageType; diff --git a/tests/Uploads/ImageTest.php b/tests/Uploads/ImageTest.php index e929d63ec..0e4065a82 100644 --- a/tests/Uploads/ImageTest.php +++ b/tests/Uploads/ImageTest.php @@ -310,7 +310,7 @@ class ImageTest extends TestCase } } - public function test_system_images_remain_public() + public function test_system_images_remain_public_with_local_secure() { config()->set('filesystems.images', 'local_secure'); $this->asAdmin(); @@ -327,6 +327,23 @@ class ImageTest extends TestCase } } + public function test_system_images_remain_public_with_local_secure_restricted() + { + config()->set('filesystems.images', 'local_secure_restricted'); + $this->asAdmin(); + $galleryFile = $this->getTestImage('my-system-test-restricted-upload.png'); + $expectedPath = public_path('uploads/images/system/' . date('Y-m') . '/my-system-test-restricted-upload.png'); + + $upload = $this->call('POST', '/settings/customization', [], [], ['app_logo' => $galleryFile], []); + $upload->assertRedirect('/settings/customization'); + + $this->assertTrue(file_exists($expectedPath), 'Uploaded image not found at path: ' . $expectedPath); + + if (file_exists($expectedPath)) { + unlink($expectedPath); + } + } + public function test_secure_restricted_images_inaccessible_without_relation_permission() { config()->set('filesystems.images', 'local_secure_restricted');