Fix keyId in email links

This commit is contained in:
Tankred Hase 2016-06-09 11:38:00 +02:00
parent 2a42c3ee61
commit 7c294540c8
4 changed files with 15 additions and 14 deletions

View File

@ -55,11 +55,12 @@ class Email {
* Send the verification email to the user using a template.
* @param {Object} template the email template to use
* @param {Object} userId user id document
* @param {string} keyId key id of public key
* @param {Object} origin origin of the server
* @yield {Object} send response from the SMTP server
*/
*send(options) {
let template = options.template, userId = options.userId, origin = options.origin;
let template = options.template, userId = options.userId, keyId = options.keyId, origin = options.origin;
let message = {
from: this._sender,
to: userId,
@ -69,7 +70,7 @@ class Email {
params: {
name: userId.name,
baseUrl: origin.protocol + '://' + origin.host,
keyid: encodeURIComponent(userId.keyid),
keyId: encodeURIComponent(keyId),
nonce: encodeURIComponent(userId.nonce)
}
};

View File

@ -1,12 +1,12 @@
{
"verifyKey": {
"subject": "Verify Your Key",
"text": "Hello {{name}},\n\nplease click here to verify your key:\n\n{{baseUrl}}/api/v1/verify?keyid={{keyid}}&nonce={{nonce}}",
"html": "<p>Hello {{name}},</p><p>please <a href=\"{{baseUrl}}/api/v1/verify?keyid={{keyid}}&nonce={{nonce}}\">click here to verify</a> your key.</p>"
"text": "Hello {{name}},\n\nplease click here to verify your key:\n\n{{baseUrl}}/api/v1/verify?id={{keyId}}&nonce={{nonce}}",
"html": "<p>Hello {{name}},</p><p>please <a href=\"{{baseUrl}}/api/v1/verify?id={{keyId}}&nonce={{nonce}}\">click here to verify</a> your key.</p>"
},
"verifyRemove": {
"subject": "Verify Key Removal",
"text": "Hello {{name}},\n\nplease click here to verify the removal of your key:\n\n{{baseUrl}}/api/v1/verifyRemove?keyid={{keyid}}&nonce={{nonce}}",
"html": "<p>Hello {{name}},</p><p>please <a href=\"{{baseUrl}}/api/v1/verifyRemove?keyid={{keyid}}&nonce={{nonce}}\">click here to verify</a> the removal of your key.</p>"
"text": "Hello {{name}},\n\nplease click here to verify the removal of your key:\n\n{{baseUrl}}/api/v1/verifyRemove?id={{keyId}}&nonce={{nonce}}",
"html": "<p>Hello {{name}},</p><p>please <a href=\"{{baseUrl}}/api/v1/verifyRemove?id={{keyId}}&nonce={{nonce}}\">click here to verify</a> the removal of your key.</p>"
}
}

View File

@ -10,7 +10,7 @@ const tpl = require('../../src/email/templates.json');
describe('Email Integration Tests', function() {
this.timeout(20000);
let email, userId, origin, publicKeyArmored;
let email, keyId, userId, origin, publicKeyArmored;
const recipient = { name:'Test User', email:'safewithme.testuser@gmail.com' };
@ -25,10 +25,10 @@ describe('Email Integration Tests', function() {
});
beforeEach(() => {
keyId = '0123456789ABCDF0';
userId = {
name: recipient.name,
email: recipient.email,
keyid: '0123456789ABCDF0',
nonce: 'qwertzuioasdfghjkqwertzuio',
publicKeyArmored
};
@ -51,22 +51,22 @@ describe('Email Integration Tests', function() {
describe("send verifyKey template", () => {
it('should send plaintext email', function *() {
delete userId.publicKeyArmored;
yield email.send({ template:tpl.verifyKey, userId, origin });
yield email.send({ template:tpl.verifyKey, userId, keyId, origin });
});
it('should send pgp encrypted email', function *() {
yield email.send({ template:tpl.verifyKey, userId, origin });
yield email.send({ template:tpl.verifyKey, userId, keyId, origin });
});
});
describe("send verifyRemove template", () => {
it('should send plaintext email', function *() {
delete userId.publicKeyArmored;
yield email.send({ template:tpl.verifyRemove, userId, origin });
yield email.send({ template:tpl.verifyRemove, userId, keyId, origin });
});
it('should send pgp encrypted email', function *() {
yield email.send({ template:tpl.verifyRemove, userId, origin });
yield email.send({ template:tpl.verifyRemove, userId, keyId, origin });
});
});

View File

@ -24,9 +24,9 @@ describe('Email Unit Tests', () => {
let userId1 = {
name: 'name1',
email: 'email1',
keyid: '0123456789ABCDF0',
nonce: 'qwertzuioasdfghjkqwertzuio'
};
let keyId = '0123456789ABCDF0';
let origin = {
protocol: 'http',
host: 'localhost:8888'
@ -73,7 +73,7 @@ describe('Email Unit Tests', () => {
});
it('should work', function *() {
let info = yield email.send({ template, userId:userId1, origin});
let info = yield email.send({ template, userId:userId1, keyId, origin});
expect(info.response).to.match(/^250/);
});