Add a global setting to try and URI decode filenames

Remove some unused dependencies
ref #537
merge-requests/341/head
Thomas Lynch 10 months ago
parent e56ff8e8d5
commit 1202510258
  1. 6
      CHANGELOG.md
  2. 2
      configs/template.js.example
  3. 3
      lib/middleware/file/filemiddlewares.js
  4. 15
      migrations/1.2.2.js
  5. 1
      models/forms/changeglobalsettings.js
  6. 92
      package-lock.json
  7. 9
      package.json
  8. 4
      views/pages/globalmanagesettings.pug

@ -1,3 +1,9 @@
### 1.2.2
- Add a global setting to try and URI decode filenames
- Minor pt-PT and pt-BR language fixes
- Remove some unused dependencies
- Npm audit
### 1.2.1
- Bugfix ban upgrades not applying correctly due to bans format change.

@ -202,6 +202,8 @@ module.exports = {
(spaces dont belong in filenames) */
spaceFileNameReplacement: '_',
uriDecodeFileNames: false,
//options for code block highlighting in posts
highlightOptions: {

@ -22,7 +22,7 @@ const { debugLogs } = require(__dirname+'/../../../configs/secrets.js')
});
}
, updateHandlers = () => {
const { globalLimits, filterFileNames, spaceFileNameReplacement } = require(__dirname+'/../../misc/config.js').get;
const { globalLimits, filterFileNames, spaceFileNameReplacement, uriDecodeFileNames } = require(__dirname+'/../../misc/config.js').get;
['flag', 'banner', 'asset', 'post'].forEach(fileType => {
const fileSizeLimit = globalLimits[`${fileType}FilesSize`];
const fileNumLimit = globalLimits[`${fileType}Files`];
@ -45,6 +45,7 @@ const { debugLogs } = require(__dirname+'/../../../configs/secrets.js')
safeFileNames: filterFileNames,
spaceFileNameReplacement,
preserveExtension: 4,
uriDecodeFileNames,
limits: {
totalSize: fileSizeLimit.max,
fileSize: fileSizeLimit.max,

@ -0,0 +1,15 @@
'use strict';
module.exports = async(db, redis) => {
console.log('Updating globalsettings to add uriDecodeFileNames');
await db.collection('globalsettings').updateOne({ _id: 'globalsettings' }, {
'$set': {
'uriDecodeFileNames': false,
},
});
console.log('Clearing globalsettings cache');
await redis.deletePattern('globalsettings');
};

@ -192,6 +192,7 @@ module.exports = async (req, res) => {
maxRecentNews: numberSetting(req.body.max_recent_news, oldSettings.maxRecentNews),
filterFileNames: booleanSetting(req.body.filter_file_names, oldSettings.filterFileNames),
spaceFileNameReplacement: req.body.space_file_name_replacement,
uriDecodeFileNames: booleanSetting(req.body.uri_decode_file_names, oldSettings.uriDecodeFileNames),
globalLimits: {
customCss: {
enabled: booleanSetting(req.body.global_limits_custom_css_enabled, oldSettings.globalLimits.customCss.enabled),

92
package-lock.json generated

@ -1,15 +1,15 @@
{
"name": "jschan",
"version": "1.2.1",
"version": "1.2.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "jschan",
"version": "1.2.1",
"version": "1.2.2",
"license": "AGPL-3.0-only",
"dependencies": {
"@fatchan/express-fileupload": "^1.4.2",
"@fatchan/express-fileupload": "^1.4.3",
"@fatchan/gm": "^1.3.2",
"@socket.io/redis-adapter": "^7.2.0",
"bcrypt": "^5.1.0",
@ -26,7 +26,6 @@
"file-type": "^16.5.4",
"fluent-ffmpeg": "^2.1.2",
"form-data": "^4.0.0",
"fs": "0.0.1-security",
"fs-extra": "^10.1.0",
"gulp": "^4.0.2",
"gulp-clean-css": "^4.3.0",
@ -46,10 +45,8 @@
"mongodb": "^4.16.0",
"node-fetch": "^2.6.12",
"otpauth": "^9.1.3",
"path": "^0.12.7",
"pm2": "^5.3.0",
"pug": "^3.0.2",
"pug-runtime": "^3.0.1",
"qrcode": "^1.5.3",
"redlock": "^4.2.0",
"sanitize-html": "^2.11.0",
@ -1381,9 +1378,9 @@
}
},
"node_modules/@fatchan/express-fileupload": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/@fatchan/express-fileupload/-/express-fileupload-1.4.2.tgz",
"integrity": "sha512-kRoBCvV6oUxV1T2rhNBVMT9ufIkD7ACORaa2XdutFXpnTWso6RcE0VysO0wEIFAAwmxRu/3Uw12Q9cKrV2uQfw==",
"version": "1.4.3",
"resolved": "https://registry.npmjs.org/@fatchan/express-fileupload/-/express-fileupload-1.4.3.tgz",
"integrity": "sha512-DW8x4RepeeVReqPze6McCEhQ+Wwh9wcqy0JcL7lNnXKN80fKlWjefHPTmGd63QUDnwb5Pr34nwzqXTRxCYOAMg==",
"dependencies": {
"busboy": "^1.6.0"
},
@ -1967,9 +1964,9 @@
}
},
"node_modules/@opencensus/core/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"bin": {
"semver": "bin/semver"
}
@ -2011,9 +2008,9 @@
}
},
"node_modules/@opencensus/propagation-b3/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"bin": {
"semver": "bin/semver"
}
@ -3666,9 +3663,9 @@
}
},
"node_modules/async-listener/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"bin": {
"semver": "bin/semver"
}
@ -6939,11 +6936,6 @@
"node": ">= 0.6"
}
},
"node_modules/fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
"integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
},
"node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
@ -8770,9 +8762,9 @@
}
},
"node_modules/istanbul-lib-instrument/node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true,
"bin": {
"semver": "bin/semver.js"
@ -9878,9 +9870,9 @@
}
},
"node_modules/less/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"optional": true,
"bin": {
"semver": "bin/semver"
@ -10052,9 +10044,9 @@
}
},
"node_modules/make-dir/node_modules/semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"bin": {
"semver": "bin/semver.js"
}
@ -10967,9 +10959,9 @@
}
},
"node_modules/normalize-package-data/node_modules/semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"version": "5.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
"bin": {
"semver": "bin/semver"
}
@ -11538,15 +11530,6 @@
"node": ">=0.10.0"
}
},
"node_modules/path": {
"version": "0.12.7",
"resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
"integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
"dependencies": {
"process": "^0.11.1",
"util": "^0.10.3"
}
},
"node_modules/path-dirname": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
@ -12184,14 +12167,6 @@
"node": ">= 0.8"
}
},
"node_modules/process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
"integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
"engines": {
"node": ">= 0.6.0"
}
},
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@ -15207,14 +15182,6 @@
"node": ">=0.10.0"
}
},
"node_modules/util": {
"version": "0.10.4",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
"integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
"dependencies": {
"inherits": "2.0.3"
}
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@ -15237,11 +15204,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/util/node_modules/inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
},
"node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",

@ -1,11 +1,11 @@
{
"name": "jschan",
"version": "1.2.1",
"migrateVersion": "1.2.0",
"version": "1.2.2",
"migrateVersion": "1.2.2",
"description": "",
"main": "server.js",
"dependencies": {
"@fatchan/express-fileupload": "^1.4.2",
"@fatchan/express-fileupload": "^1.4.3",
"@fatchan/gm": "^1.3.2",
"@socket.io/redis-adapter": "^7.2.0",
"bcrypt": "^5.1.0",
@ -22,7 +22,6 @@
"file-type": "^16.5.4",
"fluent-ffmpeg": "^2.1.2",
"form-data": "^4.0.0",
"fs": "0.0.1-security",
"fs-extra": "^10.1.0",
"gulp": "^4.0.2",
"gulp-clean-css": "^4.3.0",
@ -42,10 +41,8 @@
"mongodb": "^4.16.0",
"node-fetch": "^2.6.12",
"otpauth": "^9.1.3",
"path": "^0.12.7",
"pm2": "^5.3.0",
"pug": "^3.0.2",
"pug-runtime": "^3.0.1",
"qrcode": "^1.5.3",
"redlock": "^4.2.0",
"sanitize-html": "^2.11.0",

@ -559,6 +559,10 @@ block content
.row
.label #{__('Space File Name Replacement')}
input(type='text', name='space_file_name_replacement', value=settings.spaceFileNameReplacement)
.row
.label #{__('URI Decode File Names')}
label.postform-style.ph-5
input(type='checkbox', name='uri_decode_file_names', value='true' checked=settings.uriDecodeFileNames)
.row
.label #{__('Thumbnail File Extension')}
input(type='text' name='thumb_extension' value=settings.thumbExtension)

Loading…
Cancel
Save