28 lines
946 B
JavaScript
28 lines
946 B
JavaScript
const LoopBackContext = require('loopback-context');
|
|
const {Email} = require('vn-print');
|
|
|
|
module.exports = function(Self) {
|
|
Self.on('resetPasswordRequest', async function(info) {
|
|
const loopBackContext = LoopBackContext.getCurrentContext();
|
|
const httpCtx = {req: loopBackContext.active};
|
|
const httpRequest = httpCtx.req.http.req;
|
|
const headers = httpRequest.headers;
|
|
const origin = headers.origin;
|
|
|
|
const user = await Self.app.models.Account.findById(info.user.id);
|
|
const params = {
|
|
recipient: info.email,
|
|
lang: user.lang,
|
|
url: `${origin}/#!/reset-password?access_token=${info.accessToken.id}`
|
|
};
|
|
|
|
const options = Object.assign({}, info.options);
|
|
for (const param in options)
|
|
params[param] = options[param];
|
|
|
|
const email = new Email(options.emailTemplate, params);
|
|
|
|
return email.send();
|
|
});
|
|
};
|