mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
fix saving history for encrypted notes
This commit is contained in:
parent
6fad30e9af
commit
b81f1ed93a
@ -81,6 +81,12 @@ async function protectNoteRecursively(noteId, dataKey, protect) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function decryptNote(note, dataKey) {
|
||||||
|
note.note_title = data_encryption.decryptString(dataKey, data_encryption.noteTitleIv(note.note_id), note.note_title);
|
||||||
|
note.note_text = data_encryption.decryptString(dataKey, data_encryption.noteTextIv(note.note_id), note.note_text);
|
||||||
|
note.is_protected = false;
|
||||||
|
}
|
||||||
|
|
||||||
async function protectNote(note, dataKey, protect) {
|
async function protectNote(note, dataKey, protect) {
|
||||||
let changed = false;
|
let changed = false;
|
||||||
|
|
||||||
@ -92,9 +98,7 @@ async function protectNote(note, dataKey, protect) {
|
|||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
else if (!protect && note.is_protected) {
|
else if (!protect && note.is_protected) {
|
||||||
note.note_title = data_encryption.decryptString(dataKey, data_encryption.noteTitleIv(note.note_id), note.note_title);
|
decryptNote(note, dataKey);
|
||||||
note.note_text = data_encryption.decryptString(dataKey, data_encryption.noteTextIv(note.note_id), note.note_text);
|
|
||||||
note.is_protected = false;
|
|
||||||
|
|
||||||
changed = true;
|
changed = true;
|
||||||
}
|
}
|
||||||
@ -150,14 +154,19 @@ async function updateNote(noteId, newNote, ctx) {
|
|||||||
if (!existingNoteHistoryId && (now - newNote.detail.date_created) >= historySnapshotTimeInterval) {
|
if (!existingNoteHistoryId && (now - newNote.detail.date_created) >= historySnapshotTimeInterval) {
|
||||||
const oldNote = await sql.getSingleResult("SELECT * FROM notes WHERE note_id = ?", [noteId]);
|
const oldNote = await sql.getSingleResult("SELECT * FROM notes WHERE note_id = ?", [noteId]);
|
||||||
|
|
||||||
|
if (oldNote.is_protected) {
|
||||||
|
decryptNote(oldNote, ctx.getDataKey());
|
||||||
|
}
|
||||||
|
|
||||||
const newNoteHistoryId = utils.newNoteHistoryId();
|
const newNoteHistoryId = utils.newNoteHistoryId();
|
||||||
|
|
||||||
await sql.insert('notes_history', {
|
await sql.insert('notes_history', {
|
||||||
note_history_id: newNoteHistoryId,
|
note_history_id: newNoteHistoryId,
|
||||||
note_id: noteId,
|
note_id: noteId,
|
||||||
|
// title and text should be decrypted now
|
||||||
note_title: oldNote.note_title,
|
note_title: oldNote.note_title,
|
||||||
note_text: oldNote.note_text,
|
note_text: oldNote.note_text,
|
||||||
is_protected: oldNote.is_protected,
|
is_protected: 0, // will be fixed in the protectNoteHistory() call
|
||||||
date_modified_from: oldNote.date_modified,
|
date_modified_from: oldNote.date_modified,
|
||||||
date_modified_to: now
|
date_modified_to: now
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user