Controllers_SecuredLinkController.js
const UserService = require("../Services/UserService");
const CrudController = require("./CrudController");
const JsonResponse = require('./JsonResponse');
/**
* @extends Myintranet.Controllers.CrudController
* @memberOf Myintranet.Controllers
* @inheritDoc
*/
class SecuredLinkController extends CrudController {
constructor(db) {
let userService = new UserService(db);
super(userService);
this.db = db;
}
completeProfile(request, response) {
this.db.User.findOne({
include: [{
model: this.db.SecuredLink,
where: {token: request.params.id}
}]
}).then(user => {
if (!user) {
response.redirect('/Perime/' + request.params.id);
} else {
response.redirect('/completeProfile/' + request.params.id);
}
});
}
SaisiePrev(request, response) {
this.db.User.findOne({
include: [{
model: this.db.SecuredLink,
where: {token: request.params.id}
}]
}).then(user => {
if (!user) {
response.redirect('/Perime/' + request.params.id);
} else {
response.redirect('/Prev/' + request.params.id);
}
});
}
SaisieCra(request, response) {
this.db.User.findOne({
include: [{
model: this.db.SecuredLink,
where: {token: request.params.id}
}]
}).then(user => {
if (!user) {
response.redirect('/Perime/' + request.params.id);
} else {
response.redirect('/cra/' + request.params.id);
}
});
}
/**
*
* @param request
* @param response
* @constructor
*/
SaisieCraEtPrev(request, response) {
this.db.User.findOne({
include: [{
model: this.db.SecuredLink,
where: {token: request.params.id}
}]
}).then(user => {
if (!user) {
response.redirect('/Perime/' + request.params.id)
} else {
response.redirect('/Cra/' + request.params.id)
}
});
}
/**
*
* @param request
* @param response
*/
async getSecuredLinkConsultant(request, response) {
let link = await this.db.SecuredLink.findOne({
where: {token: request.params.id},
include: {
model: this.db.Mission,
include: [{
model: this.db.PrevHistory
}, {
model: this.db.CraHistory
}, this.db.Employeur, this.db.Client, {
model: this.db.Consultant,
include: this.db.User
}]
}
});
if (!link) {
//TODO: add the roules to invalid link
response.json(new JsonResponse(false, null, "Link Not found"))
} else {
// link is valid
response.json(new JsonResponse(true, link, "Link found with id : "+link.id))
}
}
saveSecuredLinkConsultant(request, response) {
this.db.User.findOne({
include: [{
model: this.db.SecuredLink,
where: {token: request.params.id}
}]
}).then(user => {
if (!user) {
response.json(new JsonResponse(false, {}, "User not found "))
} else {
let passsalt = this.getPasswordAndSalt(request.body.password)
user.password = passsalt.password;
user.salt = passsalt.salt;
user.tmpAccessKey = null;
user.save().then(() => {
response.json(new JsonResponse(true, user, "User Saved"))
})
}
});
}
/**
*
* @param request
* @param response
* @constructor
*/
getResetpasswordPage(request, response) {
this.db.User.findOne({
include: [{
model: this.db.SecuredLink,
where: {token: request.params.id}
}]
}).then(user => {
if (!user) {
response.redirect('/resetPassPerime/' + request.params.id)
} else {
console.log(user)
response.redirect('/resetpass/' + request.params.id)
}
});
}
}
module.exports = SecuredLinkController;