mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
"use strict";
|
|
|
|
const log = require('./log');
|
|
const sql = require('./sql');
|
|
const protectedSessionService = require('./protected_session');
|
|
const dateUtils = require('./date_utils');
|
|
|
|
/**
|
|
* @param {BNote} note
|
|
*/
|
|
function protectRevisions(note) {
|
|
if (!protectedSessionService.isProtectedSessionAvailable()) {
|
|
throw new Error(`Cannot (un)protect revisions of note '${note.noteId}' without active protected session`);
|
|
}
|
|
|
|
for (const revision of note.getRevisions()) {
|
|
if (note.isProtected !== revision.isProtected) {
|
|
try {
|
|
const content = revision.getContent();
|
|
|
|
revision.isProtected = note.isProtected;
|
|
|
|
// this will force de/encryption
|
|
revision.setContent(content, {forceSave: true});
|
|
} catch (e) {
|
|
log.error(`Could not un/protect note revision '${revision.revisionId}'`);
|
|
|
|
throw e;
|
|
}
|
|
}
|
|
|
|
for (const attachment of revision.getAttachments()) {
|
|
if (note.isProtected !== attachment.isProtected) {
|
|
try {
|
|
const content = attachment.getContent();
|
|
|
|
attachment.isProtected = note.isProtected;
|
|
attachment.setContent(content, {forceSave: true});
|
|
} catch (e) {
|
|
log.error(`Could not un/protect attachment '${attachment.attachmentId}'`);
|
|
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
protectRevisions
|
|
};
|