working on issue

parent 4ba9dd64
......@@ -114,10 +114,9 @@ module.exports = {
* Activate the user account specified
* @param {request} req
* {
* "code": "12398123" // Validation code sent to the user's email
* "email": "email@email.com" // User's email to be activated
* "token": "12398123aas78sf798as7d987234" // Encryted code with supervisor ID
* }
* @param {response} res
* @param {response} login view
* {
* "user": {
* "id": 1234,
......@@ -265,6 +264,65 @@ module.exports = {
}
},
/*
* Sends email with link to change password
*/
request_change_password: function (req, res) {
var params = req.params.all();
if (!params.email)
return res.badRequest("Invalid email");
Supervisor.findOne({email: params.email, active:1})
.then(function (sup) {
// Send email
var message = sails.__({
phrase: 'change_password_mail',
locale: params.lang || 'es-es'
}) + 'https://' + req.headers.host + '/sup/changepass/' + sailsTokenAuth.issueToken(supervisor.id, 60*24*7); // expires in 1 week
sails.log.debug("Sending request email: \n" + message);
mailService.mailer()
.send({
to: params.email,
text: message
})
.then(() => {
res.ok();
})
.catch((err) => {
res.serverError("Mail could not be sent " + err);
});
})
.catch((err) => {
res.serverError("Supervisor not found or account not activated: " + err);
});
},
/*
* Receives a change password request and returns email
*/
change_password: function (req, res) {
if (!req.params.token)
return res.badRequest("Invalid URL");
sailsTokenAuth.verifyToken(req.params.token, function(err, token) {
if (err)
return res.badRequest("Invalid token");
Supervisor.findOne(token).then(function (supervisor) {
if (!supervisor)
throw new Error("Error when looking for user");
supervisor.password = req.params.password;
supervisor.save();
return res.view('passwordChanged', {sup: supervisor, login_url: 'https://' + req.headers.host + '/app'});
})
.catch(function (err) {
return res.serverError("Error when activating account " + err);
});
});
},
/**
* Updates an existing supervisor instance
* @param {request} req At least with one of these elements:
......
......@@ -181,6 +181,7 @@
"pages": "Pages",
"password": "Password",
"password_confirm": "Repeat password",
"password_forgotten": "Have you forgotten your password?",
"password_match": "The passwords must match",
"password_new_type": "Type the new password",
"password_short": "Password must have {{minlength}} characters length at least",
......
......@@ -181,6 +181,7 @@
"pages": "Páginas",
"password": "Contraseña",
"password_confirm": "Repita la contraseña",
"password_forgotten": "¿Ha olvidado su contraseña?",
"password_match": "Las contraseñas deben coincidir",
"password_new_type": "Escriba la nueva contraseña",
"password_type": "Escriba la contraseña",
......
......@@ -2,5 +2,6 @@
"Welcome": "Welcome",
"A brand new app.": "A brand new app.",
"notification_from_pictogram": "Notification from Pictogram",
"signin_mail": "To activate your Pictogram account, click on this link:\n"
"signin_mail": "To activate your Pictogram account, click on this link:\n",
"change_password_mail": "To change your password, please click on the following link:\n"
}
......@@ -2,5 +2,6 @@
"Welcome": "Bienvenido",
"A brand new app.": "Una aplicación de la nueva marca.",
"notification_from_pictogram": "Notificación desde Pictogram",
"signin_mail": "Para activar su cuenta en Pictogram, haga click en el siguiente enlace:\n"
"signin_mail": "Para activar su cuenta en Pictogram, haga click en el siguiente enlace:\n",
"change_password_mail": "Para cambiar su contraseña, haga click en el siguiente enlace:\n"
}
......@@ -119,6 +119,8 @@ module.exports.policies = {
update: ['tokenAuth'],
create: true,
login: true,
change_password: true,
request_change_password: true,
activate: true,
upload: ['tokenAuth'],
subscribe: ['tokenAuth'],
......
......@@ -106,6 +106,8 @@ module.exports.routes = {
'POST /sup': 'SupervisorController.create',
'POST /sup/login': 'SupervisorController.login',
'GET /sup/activate/:token': 'SupervisorController.activate',
'GET /sup/changepass': 'SupervisorController.request_change_password',
'GET /sup/changepass/:token': 'SupervisorController.change_password',
'POST /sup/upload': 'SupervisorController.upload',
'POST /sup/subscribe': 'SupervisorController.subscribe',
'POST /sup/unsubscribe': 'SupervisorController.unsubscribe',
......
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<title>Pictogram Dashboard</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/app/css/main.css">
</head>
<body>
<img title="Pictogram" alt="Pictogram" src="/app/img/logo_pictogram.png">
<p><strong>Password changed</strong></p>
<p>Dear <%= sup.name %>},</p>
<p>Your password has been updated, so you can proceed and use it to <a href="<%= login_url %>">login</a>.</p>
<p></p>
<p><strong>Clave de acceso modificada</strong></p>
<p>Estimado <%= sup.name %>},</p>
<p>Su clave ha sido modificada, por lo que puede usarla para <a href="<%= login_url %>">acceder</a>.</p>
</body>
</html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment