mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin/stable'
# Conflicts: # package-lock.json # package.json # src/services/build.js
This commit is contained in:
		| @@ -15,7 +15,9 @@ function exportBranch(req, res) { | ||||
|         const message = `Cannot export branch ${branchId} since it does not exist.`; | ||||
|         log.error(message); | ||||
|  | ||||
|         res.status(500).send(message); | ||||
|         res.setHeader("Content-Type", "text/plain") | ||||
|             .status(500) | ||||
|             .send(message); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
| @@ -41,7 +43,9 @@ function exportBranch(req, res) { | ||||
|  | ||||
|         log.error(message + e.stack); | ||||
|  | ||||
|         res.status(500).send(message); | ||||
|         res.setHeader("Content-Type", "text/plain") | ||||
|             .status(500) | ||||
|             .send(message); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -45,7 +45,9 @@ function downloadNoteFile(noteId, res, contentDisposition = true) { | ||||
|     const note = becca.getNote(noteId); | ||||
|  | ||||
|     if (!note) { | ||||
|         return res.status(404).send(`Note ${noteId} doesn't exist.`); | ||||
|         return res.setHeader("Content-Type", "text/plain") | ||||
|             .status(404) | ||||
|             .send(`Note ${noteId} doesn't exist.`); | ||||
|     } | ||||
|  | ||||
|     if (note.isProtected && !protectedSessionService.isProtectedSessionAvailable()) { | ||||
|   | ||||
| @@ -33,7 +33,9 @@ function returnImage(req, res) { | ||||
|             res.set("Cache-Control", "no-cache, no-store, must-revalidate"); | ||||
|             res.send(svg); | ||||
|         } catch(err) { | ||||
|             res.status(500).send("there was an error parsing excalidraw to svg"); | ||||
|             res.setHeader("Content-Type", "text/plain") | ||||
|                 .status(500) | ||||
|                 .send("there was an error parsing excalidraw to svg"); | ||||
|         } | ||||
|     } else { | ||||
|         res.set('Content-Type', image.mime); | ||||
|   | ||||
| @@ -65,11 +65,15 @@ function downloadNoteRevision(req, res) { | ||||
|     const noteRevision = becca.getNoteRevision(req.params.noteRevisionId); | ||||
|  | ||||
|     if (noteRevision.noteId !== req.params.noteId) { | ||||
|         return res.status(400).send(`Note revision ${req.params.noteRevisionId} does not belong to note ${req.params.noteId}`); | ||||
|         return res.setHeader("Content-Type", "text/plain") | ||||
|             .status(400) | ||||
|             .send(`Note revision ${req.params.noteRevisionId} does not belong to note ${req.params.noteId}`); | ||||
|     } | ||||
|  | ||||
|     if (noteRevision.isProtected && !protectedSessionService.isProtectedSessionAvailable()) { | ||||
|         return res.status(401).send("Protected session not available"); | ||||
|         return res.setHeader("Content-Type", "text/plain") | ||||
|             .status(401) | ||||
|             .send("Protected session not available"); | ||||
|     } | ||||
|  | ||||
|     const filename = getRevisionFilename(noteRevision); | ||||
|   | ||||
| @@ -49,7 +49,9 @@ function handleRequest(req, res) { | ||||
|             catch (e) { | ||||
|                 log.error(`Custom handler ${note.noteId} failed with ${e.message}`); | ||||
|  | ||||
|                 res.status(500).send(e.message); | ||||
|                 res.setHeader("Content-Type", "text/plain") | ||||
|                     .status(500) | ||||
|                     .send(e.message); | ||||
|             } | ||||
|         } | ||||
|         else if (attr.name === 'customResourceProvider') { | ||||
| @@ -65,7 +67,9 @@ function handleRequest(req, res) { | ||||
|     const message = `No handler matched for custom ${path} request.`; | ||||
|  | ||||
|     log.info(message); | ||||
|     res.status(404).send(message); | ||||
|     res.setHeader("Content-Type", "text/plain") | ||||
|         .status(404) | ||||
|         .send(message); | ||||
| } | ||||
|  | ||||
| function register(router) { | ||||
|   | ||||
| @@ -121,6 +121,10 @@ function apiResultHandler(req, res, result) { | ||||
|  | ||||
| function send(res, statusCode, response) { | ||||
|     if (typeof response === 'string') { | ||||
|         if (statusCode >= 400) { | ||||
|             res.setHeader("Content-Type", "text/plain"); | ||||
|         } | ||||
|  | ||||
|         res.status(statusCode).send(response); | ||||
|  | ||||
|         return response.length; | ||||
| @@ -168,7 +172,9 @@ function route(method, path, middleware, routeHandler, resultHandler, transactio | ||||
|                         .catch(e => { | ||||
|                             log.error(`${method} ${path} threw exception: ` + e.stack); | ||||
|  | ||||
|                             res.status(500).send(e.message); | ||||
|                             res.setHeader("Content-Type", "text/plain") | ||||
|                                 .status(500) | ||||
|                                 .send(e.message); | ||||
|                         }); | ||||
|                 } | ||||
|                 else { | ||||
| @@ -181,7 +187,9 @@ function route(method, path, middleware, routeHandler, resultHandler, transactio | ||||
|         catch (e) { | ||||
|             log.error(`${method} ${path} threw exception: ` + e.stack); | ||||
|  | ||||
|             res.status(500).send(e.message); | ||||
|             res.setHeader("Content-Type", "text/plain") | ||||
|                 .status(500) | ||||
|                 .send(e.message); | ||||
|         } | ||||
|     }); | ||||
| } | ||||
|   | ||||
| @@ -88,17 +88,23 @@ function checkEtapiToken(req, res, next) { | ||||
| function reject(req, res, message) { | ||||
|     log.info(`${req.method} ${req.path} rejected with 401 ${message}`); | ||||
|  | ||||
|     res.status(401).send(message); | ||||
|     res.setHeader("Content-Type", "text/plain") | ||||
|         .status(401) | ||||
|         .send(message); | ||||
| } | ||||
|  | ||||
| function checkCredentials(req, res, next) { | ||||
|     if (!sqlInit.isDbInitialized()) { | ||||
|         res.status(400).send('Database is not initialized yet.'); | ||||
|         res.setHeader("Content-Type", "text/plain") | ||||
|             .status(400) | ||||
|             .send('Database is not initialized yet.'); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (!passwordService.isPasswordSet()) { | ||||
|         res.status(400).send('Password has not been set yet. Please set a password and repeat the action'); | ||||
|         res.setHeader("Content-Type", "text/plain") | ||||
|             .status(400) | ||||
|             .send('Password has not been set yet. Please set a password and repeat the action'); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
| @@ -109,7 +115,9 @@ function checkCredentials(req, res, next) { | ||||
|     // username is ignored | ||||
|  | ||||
|     if (!passwordEncryptionService.verifyPassword(password)) { | ||||
|         res.status(401).send('Incorrect password'); | ||||
|         res.setHeader("Content-Type", "text/plain") | ||||
|             .status(401) | ||||
|             .send('Incorrect password'); | ||||
|     } | ||||
|     else { | ||||
|         next(); | ||||
|   | ||||
| @@ -39,9 +39,9 @@ function register(router) { | ||||
|         addNoIndexHeader(note, res); | ||||
|  | ||||
|         if (note.hasLabel('shareRaw') || ['image', 'file'].includes(note.type)) { | ||||
|             res.setHeader('Content-Type', note.mime); | ||||
|             res.setHeader('Content-Type', note.mime) | ||||
|                 .send(note.getContent()); | ||||
|  | ||||
|             res.send(note.getContent()); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
| @@ -83,7 +83,9 @@ function register(router) { | ||||
|         const note = shaca.getNote(noteId); | ||||
|  | ||||
|         if (!note) { | ||||
|             return res.status(404).send(`Note '${noteId}' not found`); | ||||
|             return res.setHeader("Content-Type", "text/plain") | ||||
|                 .status(404) | ||||
|                 .send(`Note '${noteId}' not found`); | ||||
|         } | ||||
|  | ||||
|         addNoIndexHeader(note, res); | ||||
| @@ -98,7 +100,9 @@ function register(router) { | ||||
|         const note = shaca.getNote(noteId); | ||||
|  | ||||
|         if (!note) { | ||||
|             return res.status(404).send(`Note '${noteId}' not found`); | ||||
|             return res.setHeader("Content-Type", "text/plain") | ||||
|                 .status(404) | ||||
|                 .send(`Note '${noteId}' not found`); | ||||
|         } | ||||
|  | ||||
|         addNoIndexHeader(note, res); | ||||
| @@ -122,10 +126,14 @@ function register(router) { | ||||
|         const image = shaca.getNote(req.params.noteId); | ||||
|  | ||||
|         if (!image) { | ||||
|             return res.status(404).send(`Note '${req.params.noteId}' not found`); | ||||
|             return res.setHeader('Content-Type', 'text/plain') | ||||
|                 .status(404) | ||||
|                 .send(`Note '${req.params.noteId}' not found`); | ||||
|         } | ||||
|         else if (!["image", "canvas"].includes(image.type)) { | ||||
|             return res.status(400).send("Requested note is not a shareable image"); | ||||
|             return res.setHeader('Content-Type', 'text/plain') | ||||
|                 .status(400) | ||||
|                 .send("Requested note is not a shareable image"); | ||||
|         } else if (image.type === "canvas") { | ||||
|             /** | ||||
|              * special "image" type. the canvas is actually type application/json | ||||
| @@ -141,7 +149,9 @@ function register(router) { | ||||
|                 res.set("Cache-Control", "no-cache, no-store, must-revalidate"); | ||||
|                 res.send(svg); | ||||
|             } catch(err) { | ||||
|                 res.status(500).send("there was an error parsing excalidraw to svg"); | ||||
|                 res.setHeader('Content-Type', 'text/plain') | ||||
|                     .status(500) | ||||
|                     .send("there was an error parsing excalidraw to svg"); | ||||
|             } | ||||
|         } else { | ||||
|             // normal image | ||||
| @@ -159,7 +169,9 @@ function register(router) { | ||||
|         const note = shaca.getNote(noteId); | ||||
|  | ||||
|         if (!note) { | ||||
|             return res.status(404).send(`Note '${noteId}' not found`); | ||||
|             return res.setHeader('Content-Type', 'text/plain') | ||||
|                 .status(404) | ||||
|                 .send(`Note '${noteId}' not found`); | ||||
|         } | ||||
|  | ||||
|         addNoIndexHeader(note, res); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user