mirror of
https://github.com/zadam/trilium.git
synced 2025-11-01 19:05:59 +01:00
server side WIP - saving encrypted note now works, changing terminology of "encrypted note" to "protected note"
This commit is contained in:
@@ -7,15 +7,15 @@ const auth = require('../../services/auth');
|
||||
|
||||
router.get('/:noteId', auth.checkApiAuth, async (req, res, next) => {
|
||||
const noteId = req.params.noteId;
|
||||
const encryption = req.query.encryption;
|
||||
const isProtected = req.query.is_protected;
|
||||
|
||||
let history;
|
||||
|
||||
if (encryption === undefined) {
|
||||
if (isProtected === undefined) {
|
||||
history = await sql.getResults("select * from notes_history where note_id = ? order by date_modified_to desc", [noteId]);
|
||||
}
|
||||
else {
|
||||
history = await sql.getResults("select * from notes_history where note_id = ? and encryption = ? order by date_modified_to desc", [noteId, encryption]);
|
||||
history = await sql.getResults("select * from notes_history where note_id = ? and is_protected = ? order by date_modified_to desc", [noteId, is_protected]);
|
||||
}
|
||||
|
||||
res.send(history);
|
||||
|
||||
@@ -9,6 +9,7 @@ const utils = require('../../services/utils');
|
||||
const notes = require('../../services/notes');
|
||||
const protected_session = require('../../services/protected_session');
|
||||
const data_encryption = require('../../services/data_encryption');
|
||||
const RequestContext = require('../../services/request_context');
|
||||
|
||||
router.get('/:noteId', auth.checkApiAuth, async (req, res, next) => {
|
||||
let noteId = req.params.noteId;
|
||||
@@ -17,12 +18,7 @@ router.get('/:noteId', auth.checkApiAuth, async (req, res, next) => {
|
||||
|
||||
let detail = await sql.getSingleResult("select * from notes where note_id = ?", [noteId]);
|
||||
|
||||
if (detail.note_clone_id) {
|
||||
noteId = detail.note_clone_id;
|
||||
detail = sql.getSingleResult("select * from notes where note_id = ?", [noteId]);
|
||||
}
|
||||
|
||||
if (detail.encryption > 0) {
|
||||
if (detail.is_protected) {
|
||||
const dataKey = protected_session.getDataKey(req);
|
||||
|
||||
detail.note_title = data_encryption.decrypt(dataKey, detail.note_title);
|
||||
@@ -49,11 +45,11 @@ router.post('/:parentNoteId/children', async (req, res, next) => {
|
||||
});
|
||||
|
||||
router.put('/:noteId', async (req, res, next) => {
|
||||
const newNote = req.body;
|
||||
const note = req.body;
|
||||
let noteId = req.params.noteId;
|
||||
const browserId = utils.browserId(req);
|
||||
const reqCtx = new RequestContext(req);
|
||||
|
||||
await notes.updateNote(noteId, newNote, browserId);
|
||||
await notes.updateNote(noteId, note, reqCtx);
|
||||
|
||||
res.send({});
|
||||
});
|
||||
|
||||
@@ -13,13 +13,10 @@ const data_encryption = require('../../services/data_encryption');
|
||||
router.get('/', auth.checkApiAuth, async (req, res, next) => {
|
||||
const notes = await sql.getResults("select "
|
||||
+ "notes_tree.*, "
|
||||
+ "COALESCE(clone.note_title, notes.note_title) as note_title, "
|
||||
+ "notes.note_clone_id, "
|
||||
+ "notes.encryption, "
|
||||
+ "case when notes.note_clone_id is null or notes.note_clone_id = '' then 0 else 1 end as is_clone "
|
||||
+ "notes.note_title, "
|
||||
+ "notes.is_protected "
|
||||
+ "from notes_tree "
|
||||
+ "join notes on notes.note_id = notes_tree.note_id "
|
||||
+ "left join notes as clone on notes.note_clone_id = clone.note_id "
|
||||
+ "where notes.is_deleted = 0 and notes_tree.is_deleted = 0 "
|
||||
+ "order by note_pid, note_pos");
|
||||
|
||||
@@ -29,7 +26,7 @@ router.get('/', auth.checkApiAuth, async (req, res, next) => {
|
||||
const dataKey = protected_session.getDataKey(req);
|
||||
|
||||
for (const note of notes) {
|
||||
if (note['encryption']) {
|
||||
if (note.is_protected) {
|
||||
note.note_title = data_encryption.decrypt(dataKey, note.note_title);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user