From 4dba1b26ca031f2f3df39cf6bbbff68e4600c76a Mon Sep 17 00:00:00 2001 From: Diego Pino Navarro Date: Sat, 3 Feb 2018 12:04:10 -0500 Subject: [PATCH] ISLANDORA-2153: Allow datastreams with no MIME type restrictions to be replaced with any file type (#1) * Return empty if no restriction set, enforce this on the form --- includes/datastream.version.inc | 8 +++++++- includes/mimetype.utils.inc | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/includes/datastream.version.inc b/includes/datastream.version.inc index b79b5a80..ea27cc65 100644 --- a/includes/datastream.version.inc +++ b/includes/datastream.version.inc @@ -283,7 +283,13 @@ function islandora_datastream_version_replace_form($form, &$form_state, Abstract $form_state['object'] = $object; $extensions = islandora_get_extensions_for_datastream($object, $datastream->id); - $valid_extensions = implode(' ', $extensions); + if (empty($extensions)) { + // In case no extensions are returned, don't limit. + $valid_extensions = NULL; + } + else { + $valid_extensions = implode(' ', $extensions); + } $upload_size = min((int) ini_get('post_max_size'), (int) ini_get('upload_max_filesize')); return array( 'dsid_fieldset' => array( diff --git a/includes/mimetype.utils.inc b/includes/mimetype.utils.inc index 4dfb5b69..a091ccc6 100644 --- a/includes/mimetype.utils.inc +++ b/includes/mimetype.utils.inc @@ -76,6 +76,10 @@ function islandora_get_extensions_for_datastream(AbstractObject $object, $dsid) module_load_include('inc', 'islandora', 'includes/utilities'); $datastream_mime_map = islandora_get_datastreams_requirements_from_models($object->models); $mimes = isset($datastream_mime_map[$dsid]) ? $datastream_mime_map[$dsid]['mime'] : array(); + // If no restriction set via DS-COMPOSITE-MODEL return an empty array. + if (empty($mimes)) { + return array(); + } if (isset($object[$dsid])) { $current_mime = $object[$dsid]->mimetype; if (!in_array($current_mime, $mimes)) {