To ensure thhat the visibility is still set on local storage options
since the previous recent changes could cause problems where in
scenarios where the server user could not read images uploaded by the
php process user.
Closes #2758
{
$storage->put($path, $data);
{
$storage->put($path, $data);
- // Set visibility if using s3 without an endpoint set.
- // Done since this call can break s3-like services but desired for actual
- // AWS s3 usage. Attempting to set ACL during above put request requires
- // different permissions hence would technically be a breaking change.
+ // Set visibility when a non-AWS-s3, s3-like storage option is in use.
+ // Done since this call can break s3-like services but desired for other image stores.
+ // Attempting to set ACL during above put request requires different permissions
+ // hence would technically be a breaking change for actual s3 usage.
$usingS3 = strtolower(config('filesystems.images')) === 's3';
$usingS3 = strtolower(config('filesystems.images')) === 's3';
- if ($usingS3 && is_null(config('filesystems.disks.s3.endpoint'))) {
+ $usingS3Like = $usingS3 && !is_null(config('filesystems.disks.s3.endpoint'));
+ if (!$usingS3Like) {
$storage->setVisibility($path, 'public');
}
}
$storage->setVisibility($path, 'public');
}
}
public function test_image_upload()
{
public function test_image_upload()
{
+ $page = Page::query()->first();
$admin = $this->getAdmin();
$this->actingAs($admin);
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_image_display_thumbnail_generation_does_not_increase_image_size()
{
public function test_image_display_thumbnail_generation_does_not_increase_image_size()
{
+ $page = Page::query()->first();
$admin = $this->getAdmin();
$this->actingAs($admin);
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_image_usage()
{
public function test_image_usage()
{
+ $page = Page::query()->first();
$editor = $this->getEditor();
$this->actingAs($editor);
$editor = $this->getEditor();
$this->actingAs($editor);
public function test_php_files_cannot_be_uploaded()
{
public function test_php_files_cannot_be_uploaded()
{
+ $page = Page::query()->first();
$admin = $this->getAdmin();
$this->actingAs($admin);
$admin = $this->getAdmin();
$this->actingAs($admin);
public function test_php_like_files_cannot_be_uploaded()
{
public function test_php_like_files_cannot_be_uploaded()
{
+ $page = Page::query()->first();
$admin = $this->getAdmin();
$this->actingAs($admin);
$admin = $this->getAdmin();
$this->actingAs($admin);
];
foreach ($badNames as $name) {
$galleryFile = $this->getTestImage($name);
];
foreach ($badNames as $name) {
$galleryFile = $this->getTestImage($name);
+ $page = Page::query()->first();
$badPath = $this->getTestImagePath('gallery', $name);
$this->deleteImage($badPath);
$badPath = $this->getTestImagePath('gallery', $name);
$this->deleteImage($badPath);
config()->set('filesystems.images', 'local_secure');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
config()->set('filesystems.images', 'local_secure');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
+ $page = Page::query()->first();
$expectedPath = storage_path('uploads/images/gallery/' . Date('Y-m') . '/my-secure-test-upload.png');
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
$expectedPath = storage_path('uploads/images/gallery/' . Date('Y-m') . '/my-secure-test-upload.png');
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
config()->set('filesystems.images', 'local_secure');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
config()->set('filesystems.images', 'local_secure');
$this->asEditor();
$galleryFile = $this->getTestImage('my-secure-test-upload.png');
+ $page = Page::query()->first();
$expectedPath = storage_path('uploads/images/gallery/' . Date('Y-m') . '/my-secure-test-upload.png');
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
$expectedPath = storage_path('uploads/images/gallery/' . Date('Y-m') . '/my-secure-test-upload.png');
$upload = $this->call('POST', '/images/gallery', ['uploaded_to' => $page->id], [], ['file' => $galleryFile], []);
public function test_image_delete()
{
public function test_image_delete()
{
+ $page = Page::query()->first();
$this->asAdmin();
$imageName = 'first-image.png';
$relPath = $this->getTestImagePath('gallery', $imageName);
$this->asAdmin();
$imageName = 'first-image.png';
$relPath = $this->getTestImagePath('gallery', $imageName);
public function test_image_delete_does_not_delete_similar_images()
{
public function test_image_delete_does_not_delete_similar_images()
{
+ $page = Page::query()->first();
$this->asAdmin();
$imageName = 'first-image.png';
$this->asAdmin();
$imageName = 'first-image.png';
public function test_deleted_unused_images()
{
public function test_deleted_unused_images()
{
+ $page = Page::query()->first();
$admin = $this->getAdmin();
$this->actingAs($admin);
$admin = $this->getAdmin();
$this->actingAs($admin);