/**
* Update the resource on an asset.
*
* @param AssetInterface $asset
* @param PersistentResource $resource
* @param array $options
* @throws InvalidArgumentValueException
* @return void
*/
public function updateAssetResourceAction(AssetInterface $asset, PersistentResource $resource, array $options = [])
{
$sourceMediaType = MediaTypes::parseMediaType($asset->getMediaType());
$replacementMediaType = MediaTypes::parseMediaType($resource->getMediaType());
// Prevent replacement of image, audio and video by a different mimetype because of possible rendering issues.
if (in_array($sourceMediaType['type'], ['image', 'audio', 'video']) && $sourceMediaType['type'] !== $replacementMediaType['type']) {
$this->addFlashMessage('Resources of type "%s" can only be replaced by a similar resource. Got type "%s"', '', Message::SEVERITY_WARNING, [$sourceMediaType['type'], $resource->getMediaType()], 1462308179);
$this->redirect('index');
}
parent::updateAssetResourceAction($asset, $resource, $options);
}