Allow more detailed configuration of upload mime types

Fixes #637

Signed-off-by: Sheogorath <sheogorath@shivering-isles.com>
This commit is contained in:
Sheogorath 2018-01-20 15:08:31 +01:00
parent 40d1d75704
commit a7935a595a
No known key found for this signature in database
GPG key ID: 1F05CC3635CDDFFD
4 changed files with 29 additions and 11 deletions

3
app.js
View file

@ -34,7 +34,8 @@ var data = {
version: config.version, version: config.version,
GOOGLE_API_KEY: config.google.clientSecret, GOOGLE_API_KEY: config.google.clientSecret,
GOOGLE_CLIENT_ID: config.google.clientID, 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) { ejs.renderFile(constpath, data, {}, function (err, str) {

View file

@ -97,6 +97,26 @@ config.isLDAPEnable = config.ldap.url
config.isSAMLEnable = config.saml.idpSsoUrl config.isSAMLEnable = config.saml.idpSsoUrl
config.isPDFExportEnable = config.allowpdfexport 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 // generate correct path
config.sslcapath.forEach(function (capath, i, array) { config.sslcapath.forEach(function (capath, i, array) {
array[i] = path.resolve(appRootPath, capath) array[i] = path.resolve(appRootPath, capath)

View file

@ -3,6 +3,8 @@ window.urlpath = '<%- urlpath %>'
window.debug = <%- debug %> window.debug = <%- debug %>
window.version = '<%- version %>' window.version = '<%- version %>'
window.allowedUploadMimeTypes = <%- JSON.stringify(allowedUploadMimeTypes) %>
window.GOOGLE_API_KEY = '<%- GOOGLE_API_KEY %>' window.GOOGLE_API_KEY = '<%- GOOGLE_API_KEY %>'
window.GOOGLE_CLIENT_ID = '<%- GOOGLE_CLIENT_ID %>' window.GOOGLE_CLIENT_ID = '<%- GOOGLE_CLIENT_ID %>'
window.DROPBOX_APP_KEY = '<%- DROPBOX_APP_KEY %>' window.DROPBOX_APP_KEY = '<%- DROPBOX_APP_KEY %>'

View file

@ -141,12 +141,7 @@
/** /**
* Allowed MIME types * Allowed MIME types
*/ */
allowedTypes: [ allowedTypes: window.allowedUploadMimeTypes,
'image/jpeg',
'image/png',
'image/jpg',
'image/gif'
],
/** /**
* Text which will be inserted when dropping or pasting a file. * Text which will be inserted when dropping or pasting a file.
@ -304,7 +299,7 @@
if (this.settings.onFileUploadResponse.call(this, xhr) !== false) { if (this.settings.onFileUploadResponse.call(this, xhr) !== false) {
var result = JSON.parse(xhr.responseText), var result = JSON.parse(xhr.responseText),
filename = result[this.settings.jsonFieldName]; filename = result[this.settings.jsonFieldName];
if (result && filename) { if (result && filename) {
var replacements = []; var replacements = [];
var string = this.settings.progressText.replace(this.filenameTag, id); var string = this.settings.progressText.replace(this.filenameTag, id);
@ -415,7 +410,7 @@
// <http://wiki.ecmascript.org/doku.php?id=strawman:names>. // <http://wiki.ecmascript.org/doku.php?id=strawman:names>.
// //
// The goals of this function are twofold: // The goals of this function are twofold:
// //
// * Provide a way to generate a string guaranteed to be unique when compared // * Provide a way to generate a string guaranteed to be unique when compared
// to other strings generated by this function. // to other strings generated by this function.
// * Make the string complex enough that it is highly unlikely to be // * 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 // Convert it to base 36 (numbers + letters), and grab the first 9 characters
// after the decimal. // after the decimal.
return '_' + Math.random().toString(36).substr(2, 9); return '_' + Math.random().toString(36).substr(2, 9);
}; };