diff --git a/api/src/main/java/org/openmrs/module/attachments/AttachmentsConstants.java b/api/src/main/java/org/openmrs/module/attachments/AttachmentsConstants.java index ff76ba88..301f47d0 100644 --- a/api/src/main/java/org/openmrs/module/attachments/AttachmentsConstants.java +++ b/api/src/main/java/org/openmrs/module/attachments/AttachmentsConstants.java @@ -9,9 +9,13 @@ */ package org.openmrs.module.attachments; +import java.util.List; +import java.util.Arrays; + public class AttachmentsConstants { public static enum ContentFamily { + EXECUTABLE, IMAGE, PDF, OTHER @@ -69,6 +73,12 @@ public static enum ContentFamily { public static final String UNKNOWN_MIME_TYPE = "application/octet-stream"; + public static final List EXECUTABLE_MIME_TYPES = Arrays.asList("application/vnd.microsoft.portable-executable", + "type/javascript", "application/javascrip", "application/x-sh", "application/java-archive", + "application/x-httpd-php", "application/xhtml+xml", "application/x-vbs", "text/vbscript", "text/x-python", + "application/x-ms-installer", "application/x-elf", "application/x-applescript", "application/x-ruby", + "application/x-perl", "application/wasm"); + public static final String ATT_VIEW_ORIGINAL = "complexdata.view.original"; public static final String ATT_VIEW_THUMBNAIL = "complexdata.view.thumbnail"; diff --git a/api/src/main/java/org/openmrs/module/attachments/AttachmentsContext.java b/api/src/main/java/org/openmrs/module/attachments/AttachmentsContext.java index 030c65f5..c90be770 100644 --- a/api/src/main/java/org/openmrs/module/attachments/AttachmentsContext.java +++ b/api/src/main/java/org/openmrs/module/attachments/AttachmentsContext.java @@ -345,6 +345,10 @@ public static double getCompressionRatio(double fileByteSize, double maxByteSize */ public static ContentFamily getContentFamily(String mimeType) { ContentFamily contentFamily = ContentFamily.OTHER; + if (AttachmentsConstants.EXECUTABLE_MIME_TYPES.contains(mimeType)) { + contentFamily = ContentFamily.EXECUTABLE; + } + if (StringUtils.equals(mimeType, "application/pdf")) { contentFamily = ContentFamily.PDF; } diff --git a/omod-1.10/src/main/java/org/openmrs/module/attachments/rest/AttachmentResource1_10.java b/omod-1.10/src/main/java/org/openmrs/module/attachments/rest/AttachmentResource1_10.java index 37b4e131..aebfdf0d 100644 --- a/omod-1.10/src/main/java/org/openmrs/module/attachments/rest/AttachmentResource1_10.java +++ b/omod-1.10/src/main/java/org/openmrs/module/attachments/rest/AttachmentResource1_10.java @@ -57,8 +57,8 @@ public class AttachmentResource1_10 extends DataDelegatingCrudResource