summaryrefslogtreecommitdiff
path: root/lib/web
diff options
context:
space:
mode:
authorErik Michelson2021-02-17 22:02:47 +0100
committerErik Michelson2021-02-17 22:02:47 +0100
commit7e597226ecb562ae7ca70a5aec9d37c42405aa54 (patch)
treec4332e42780332dd053f0cd7f8696220f82ffd09 /lib/web
parent929ceca20fd7f86959792ca0ad9386e725786915 (diff)
Add HTTP 404 error on non-existent note downloads
When FreeURL mode is enabled and you called the /download route, the note was created and the user redirected to the blank note. This is caused because the findNote method automatically creates a note when no existing one is found. This commit adds a new parameter to the findNote method which allows to disable this behaviour. In that case a HTTP 404 error will be returned. Signed-off-by: Erik Michelson <github@erik.michelson.eu>
Diffstat (limited to 'lib/web')
-rw-r--r--lib/web/note/controller.js2
-rw-r--r--lib/web/note/util.js7
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/web/note/controller.js b/lib/web/note/controller.js
index 45aea9e2..94bfa0e2 100644
--- a/lib/web/note/controller.js
+++ b/lib/web/note/controller.js
@@ -119,7 +119,7 @@ exports.doAction = function (req, res, next) {
default:
return res.redirect(config.serverURL + '/' + noteId)
}
- })
+ }, null, false)
}
exports.downloadMarkdown = function (req, res, note) {
diff --git a/lib/web/note/util.js b/lib/web/note/util.js
index 57438515..effeb41c 100644
--- a/lib/web/note/util.js
+++ b/lib/web/note/util.js
@@ -5,7 +5,7 @@ const errors = require('../../errors')
const fs = require('fs')
const path = require('path')
-exports.findNote = function (req, res, callback, include) {
+exports.findNote = function (req, res, callback, include, createIfNotFound = true) {
const id = req.params.noteId || req.params.shortid
models.Note.parseNoteId(id, function (err, _id) {
if (err) {
@@ -18,9 +18,12 @@ exports.findNote = function (req, res, callback, include) {
},
include: include || null
}).then(function (note) {
- if (!note) {
+ if (!note && createIfNotFound) {
return exports.newNote(req, res, '')
}
+ if (!note && !createIfNotFound) {
+ return errors.errorNotFound(res)
+ }
if (!exports.checkViewPermission(req, note)) {
return errors.errorForbidden(res)
} else {