fix: menu location assignment is destructive, neutral download hint in media preview

This commit is contained in:
2026-09-26 05:06:53 +02:00
parent 66663daa99
commit 14b9508dfc
4 changed files with 13 additions and 2 deletions
@@ -87,7 +87,7 @@ final class MediaPreviewAbility implements Ability
if (! wp_attachment_is_image($id)) {
return Errors::unsupported(
'Das Medium ist kein Bild.',
'Metadaten über lit/media-get abrufen; Dateien über lit-media-download.'
'Metadaten über lit/media-get abrufen; Dateien über lit/media-download (direkt: lit-media-download).'
);
}
@@ -64,7 +64,7 @@ final class MenuAssignLocationAbility implements Ability
public function annotations(): array
{
return ['readonly' => false, 'destructive' => false, 'idempotent' => true];
return ['readonly' => false, 'destructive' => true, 'idempotent' => true];
}
public function isDirect(): bool
@@ -69,6 +69,10 @@ final class MediaPreviewAbilityTest extends TestCase
$result = (new MediaPreviewAbility())->execute(['id' => 33]);
self::assertSame('lit_unsupported', $result->get_error_code());
self::assertStringContainsString(
'lit/media-download (direkt: lit-media-download)',
(string) $result->get_error_data()['hint']
);
}
public function testFilesOutsideTheUploadsDirectoryAreRefused(): void
@@ -122,4 +122,11 @@ final class MenuAssignLocationAbilityTest extends TestCase
self::assertSame('lit_forbidden', $ability->permission($input)->get_error_code());
}
public function testIsDestructiveBecauseItReplacesTheMenuOfTheLocation(): void
{
$ability = new MenuAssignLocationAbility(Mockery::mock(ChangeLog::class));
self::assertSame(['readonly' => false, 'destructive' => true, 'idempotent' => true], $ability->annotations());
}
}