class ImageController extends Controller
{
- protected $imageRepo;
- protected $imageService;
-
- /**
- * ImageController constructor.
- */
+ protected ImageRepo $imageRepo;
+ protected ImageService $imageService;
+
public function __construct(ImageRepo $imageRepo, ImageService $imageService)
{
$this->imageRepo = $imageRepo;
</div>
<div class="grid half">
<div>
- <button type="button"
+ @if(userCan('image-delete', $image))
+ <button type="button"
id="image-manager-delete"
title="{{ trans('common.delete') }}"
class="button icon outline">@icon('delete')</button>
+ @endif
</div>
<div class="text-right">
<button type="submit"
$this->assertFalse(file_exists(public_path($relPath)), 'Uploaded image has not been deleted as expected');
}
+ public function test_image_manager_delete_button_only_shows_with_permission()
+ {
+ $page = Page::query()->first();
+ $this->asAdmin();
+ $imageName = 'first-image.png';
+ $relPath = $this->getTestImagePath('gallery', $imageName);
+ $this->deleteImage($relPath);
+ $viewer = $this->getViewer();
+
+ $this->uploadImage($imageName, $page->id);
+ $image = Image::first();
+
+ $resp = $this->get("/images/edit/{$image->id}");
+ $this->withHtml($resp)->assertElementExists('button#image-manager-delete[title="Delete"]');
+
+ $resp = $this->actingAs($viewer)->get("/images/edit/{$image->id}");
+ $this->withHtml($resp)->assertElementNotExists('button#image-manager-delete[title="Delete"]');
+
+ $this->giveUserPermissions($viewer, ['image-delete-all']);
+
+ $resp = $this->actingAs($viewer)->get("/images/edit/{$image->id}");
+ $this->withHtml($resp)->assertElementExists('button#image-manager-delete[title="Delete"]');
+
+ $this->deleteImage($relPath);
+ }
+
protected function getTestProfileImage()
{
$imageName = 'profile.png';