From 7c294540c85be45b2689e8bf726119f0d02acd6c Mon Sep 17 00:00:00 2001 From: Tankred Hase Date: Thu, 9 Jun 2016 11:38:00 +0200 Subject: [PATCH] Fix keyId in email links --- src/email/email.js | 5 +++-- src/email/templates.json | 8 ++++---- test/integration/email-test.js | 12 ++++++------ test/unit/email-test.js | 4 ++-- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/email/email.js b/src/email/email.js index 326494d..c6101d8 100644 --- a/src/email/email.js +++ b/src/email/email.js @@ -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) } }; diff --git a/src/email/templates.json b/src/email/templates.json index 350ed69..778f6e6 100644 --- a/src/email/templates.json +++ b/src/email/templates.json @@ -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": "

Hello {{name}},

please click here to verify your key.

" + "text": "Hello {{name}},\n\nplease click here to verify your key:\n\n{{baseUrl}}/api/v1/verify?id={{keyId}}&nonce={{nonce}}", + "html": "

Hello {{name}},

please click here to verify your key.

" }, "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": "

Hello {{name}},

please click here to verify the removal of your key.

" + "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": "

Hello {{name}},

please click here to verify the removal of your key.

" } } \ No newline at end of file diff --git a/test/integration/email-test.js b/test/integration/email-test.js index 45ab949..bab0319 100644 --- a/test/integration/email-test.js +++ b/test/integration/email-test.js @@ -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 }); }); }); diff --git a/test/unit/email-test.js b/test/unit/email-test.js index 3ec2108..0e88a42 100644 --- a/test/unit/email-test.js +++ b/test/unit/email-test.js @@ -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/); });