From a7935a595a6d482aaefb5a3c9fa0600adf2d2c5b Mon Sep 17 00:00:00 2001 From: Sheogorath Date: Sat, 20 Jan 2018 15:08:31 +0100 Subject: [PATCH] Allow more detailed configuration of upload mime types Fixes #637 Signed-off-by: Sheogorath --- app.js | 3 ++- lib/config/index.js | 20 +++++++++++++++++++ public/js/lib/common/constant.ejs | 4 +++- .../inlineAttachment/inline-attachment.js | 13 ++++-------- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/app.js b/app.js index 37e772b..ee04abd 100644 --- a/app.js +++ b/app.js @@ -34,7 +34,8 @@ var data = { version: config.version, GOOGLE_API_KEY: config.google.clientSecret, GOOGLE_CLIENT_ID: config.google.clientID, - DROPBOX_APP_KEY: config.dropbox.appKey + DROPBOX_APP_KEY: config.dropbox.appKey, + allowedUploadMimeTypes: config.allowedUploadMimeTypes } ejs.renderFile(constpath, data, {}, function (err, str) { diff --git a/lib/config/index.js b/lib/config/index.js index d44207b..13c4692 100644 --- a/lib/config/index.js +++ b/lib/config/index.js @@ -97,6 +97,26 @@ config.isLDAPEnable = config.ldap.url config.isSAMLEnable = config.saml.idpSsoUrl config.isPDFExportEnable = config.allowpdfexport +// figure out mime types for image uploads +switch (config.imageUploadType) { + case 'imgur': + config.allowedUploadMimeTypes = [ + 'image/jpeg', + 'image/png', + 'image/jpg', + 'image/gif' + ] + break + default: + config.allowedUploadMimeTypes = [ + 'image/jpeg', + 'image/png', + 'image/jpg', + 'image/gif', + 'image/svg+xml' + ] +} + // generate correct path config.sslcapath.forEach(function (capath, i, array) { array[i] = path.resolve(appRootPath, capath) diff --git a/public/js/lib/common/constant.ejs b/public/js/lib/common/constant.ejs index e4a1cf0..c096363 100644 --- a/public/js/lib/common/constant.ejs +++ b/public/js/lib/common/constant.ejs @@ -3,6 +3,8 @@ window.urlpath = '<%- urlpath %>' window.debug = <%- debug %> window.version = '<%- version %>' +window.allowedUploadMimeTypes = <%- JSON.stringify(allowedUploadMimeTypes) %> + window.GOOGLE_API_KEY = '<%- GOOGLE_API_KEY %>' window.GOOGLE_CLIENT_ID = '<%- GOOGLE_CLIENT_ID %>' -window.DROPBOX_APP_KEY = '<%- DROPBOX_APP_KEY %>' \ No newline at end of file +window.DROPBOX_APP_KEY = '<%- DROPBOX_APP_KEY %>' diff --git a/public/vendor/inlineAttachment/inline-attachment.js b/public/vendor/inlineAttachment/inline-attachment.js index 0ffd3f9..d9503d6 100644 --- a/public/vendor/inlineAttachment/inline-attachment.js +++ b/public/vendor/inlineAttachment/inline-attachment.js @@ -141,12 +141,7 @@ /** * Allowed MIME types */ - allowedTypes: [ - 'image/jpeg', - 'image/png', - 'image/jpg', - 'image/gif' - ], + allowedTypes: window.allowedUploadMimeTypes, /** * Text which will be inserted when dropping or pasting a file. @@ -304,7 +299,7 @@ if (this.settings.onFileUploadResponse.call(this, xhr) !== false) { var result = JSON.parse(xhr.responseText), filename = result[this.settings.jsonFieldName]; - + if (result && filename) { var replacements = []; var string = this.settings.progressText.replace(this.filenameTag, id); @@ -415,7 +410,7 @@ // . // // The goals of this function are twofold: -// +// // * Provide a way to generate a string guaranteed to be unique when compared // to other strings generated by this function. // * Make the string complex enough that it is highly unlikely to be @@ -432,4 +427,4 @@ var ID = function () { // Convert it to base 36 (numbers + letters), and grab the first 9 characters // after the decimal. return '_' + Math.random().toString(36).substr(2, 9); -}; \ No newline at end of file +};