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;
}
}
- 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();
}
}
+ 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');