Send encrypted messages to users with GPG key set
This commit is contained in:
parent
0f1bc6ab72
commit
ac8ac7c6d6
7 changed files with 17 additions and 26 deletions
|
@ -3,6 +3,7 @@
|
||||||
let log = require('npmlog');
|
let log = require('npmlog');
|
||||||
|
|
||||||
let nodemailer = require('nodemailer');
|
let nodemailer = require('nodemailer');
|
||||||
|
let openpgpEncrypt = require('nodemailer-openpgp').openpgpEncrypt;
|
||||||
let settings = require('./models/settings');
|
let settings = require('./models/settings');
|
||||||
let Handlebars = require('handlebars');
|
let Handlebars = require('handlebars');
|
||||||
let fs = require('fs');
|
let fs = require('fs');
|
||||||
|
@ -108,6 +109,7 @@ function createMailer(callback) {
|
||||||
rejectUnauthorized: !configItems.smtpSelfSigned
|
rejectUnauthorized: !configItems.smtpSelfSigned
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
module.exports.transport.use('stream', openpgpEncrypt());
|
||||||
|
|
||||||
return callback(null, module.exports.transport);
|
return callback(null, module.exports.transport);
|
||||||
});
|
});
|
||||||
|
|
|
@ -99,6 +99,9 @@ module.exports.get = (id, callback) => {
|
||||||
|
|
||||||
segment.columns = [].concat(module.exports.defaultColumns);
|
segment.columns = [].concat(module.exports.defaultColumns);
|
||||||
fieldList.forEach(field => {
|
fieldList.forEach(field => {
|
||||||
|
if (fields.genericTypes[field.type] === 'textarea') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (field.column) {
|
if (field.column) {
|
||||||
segment.columns.push({
|
segment.columns.push({
|
||||||
column: field.column,
|
column: field.column,
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
"grunt": "^1.0.1",
|
"grunt": "^1.0.1",
|
||||||
"grunt-cli": "^1.2.0",
|
"grunt-cli": "^1.2.0",
|
||||||
"grunt-contrib-nodeunit": "^1.0.0",
|
"grunt-contrib-nodeunit": "^1.0.0",
|
||||||
"grunt-eslint": "^18.0.0"
|
"grunt-eslint": "^18.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt-nodejs": "0.0.3",
|
"bcrypt-nodejs": "0.0.3",
|
||||||
|
@ -47,6 +47,7 @@
|
||||||
"multer": "^1.1.0",
|
"multer": "^1.1.0",
|
||||||
"mysql": "^2.10.2",
|
"mysql": "^2.10.2",
|
||||||
"nodemailer": "^2.3.2",
|
"nodemailer": "^2.3.2",
|
||||||
|
"nodemailer-openpgp": "^1.0.1",
|
||||||
"npmlog": "^2.0.3",
|
"npmlog": "^2.0.3",
|
||||||
"openpgp": "^2.2.1",
|
"openpgp": "^2.2.1",
|
||||||
"passport": "^0.3.2",
|
"passport": "^0.3.2",
|
||||||
|
|
|
@ -235,6 +235,8 @@ router.get('/:list/rules/:segment/create', passport.csrfProtection, (req, res) =
|
||||||
}
|
}
|
||||||
|
|
||||||
segment.csrfToken = req.csrfToken();
|
segment.csrfToken = req.csrfToken();
|
||||||
|
|
||||||
|
console.log(segment);
|
||||||
segment.list = list;
|
segment.list = list;
|
||||||
|
|
||||||
res.render('lists/segments/rule-create', segment);
|
res.render('lists/segments/rule-create', segment);
|
||||||
|
|
|
@ -130,10 +130,16 @@ function formatMessage(message, callback) {
|
||||||
FULL_NAME: [].concat(message.subscription.firstName || []).concat(message.subscription.lastName || []).join(' ')
|
FULL_NAME: [].concat(message.subscription.firstName || []).concat(message.subscription.lastName || []).join(' ')
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let encryptionKeys = [];
|
||||||
fields.getRow(fieldList, message.subscription, true, true).forEach(field => {
|
fields.getRow(fieldList, message.subscription, true, true).forEach(field => {
|
||||||
if (field.mergeTag) {
|
if (field.mergeTag) {
|
||||||
message.subscription.mergeTags[field.mergeTag] = field.mergeValue || '';
|
message.subscription.mergeTags[field.mergeTag] = field.mergeValue || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (field.type === 'gpg' && field.value) {
|
||||||
|
encryptionKeys.push(field.value.trim());
|
||||||
|
}
|
||||||
|
|
||||||
if (field.options) {
|
if (field.options) {
|
||||||
field.options.forEach(subField => {
|
field.options.forEach(subField => {
|
||||||
if (subField.mergeTag) {
|
if (subField.mergeTag) {
|
||||||
|
@ -206,7 +212,8 @@ function formatMessage(message, callback) {
|
||||||
html: tools.formatMessage(configItems.serviceUrl, campaign, list, message.subscription, html),
|
html: tools.formatMessage(configItems.serviceUrl, campaign, list, message.subscription, html),
|
||||||
text: tools.formatMessage(configItems.serviceUrl, campaign, list, message.subscription, campaign.text),
|
text: tools.formatMessage(configItems.serviceUrl, campaign, list, message.subscription, campaign.text),
|
||||||
|
|
||||||
attachments
|
attachments,
|
||||||
|
encryptionKeys
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -32,18 +32,6 @@
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if columnTypeTextarea}}
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-sm-offset-2 col-xs-4">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" name="value" {{#if value.value}} checked {{/if}}> Value exists
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if columnTypeNumber}}
|
{{#if columnTypeNumber}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="value" class="col-sm-2 control-label">Value</label>
|
<label for="value" class="col-sm-2 control-label">Value</label>
|
||||||
|
|
|
@ -37,18 +37,6 @@
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
{{#if columnTypeTextarea}}
|
|
||||||
<div class="form-group">
|
|
||||||
<div class="col-sm-offset-2 col-xs-4">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label>
|
|
||||||
<input type="checkbox" name="value" {{#if value.value}} checked {{/if}}> Value exists
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#if columnTypeNumber}}
|
{{#if columnTypeNumber}}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="value" class="col-sm-2 control-label">Value</label>
|
<label for="value" class="col-sm-2 control-label">Value</label>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue