fix Registrazione data

fix linkref
fix controllo login
This commit is contained in:
Paolo Arena
2020-01-20 01:48:25 +01:00
parent e23a3a792e
commit 6dcaea5f1c
21 changed files with 779 additions and 171 deletions

View File

@@ -3,6 +3,9 @@ const router = express.Router(),
fs = require('fs'),
path = require('path');
const jwt = require('jsonwebtoken');
const sendemail = require('../sendemail');
const { authenticate, authenticate_noerror } = require('../middleware/authenticate');
@@ -51,7 +54,7 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
const body = _.pick(req.body, ['idapp', 'idlink']);
const idapp = body.idapp;
const idlink = body.idlink;
console.log("LINKVERIF_REG POST " + process.env.LINKVERIF_REG + " idapp= " + idapp + " idlink = " + idlink);
// console.log("LINKVERIF_REG POST " + process.env.LINKVERIF_REG + " idapp= " + idapp + " idlink = " + idlink);
// Cerco l'idlink se è ancora da Verificare
@@ -60,17 +63,18 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
//console.log("NON TROVATO!");
return res.status(404).send();
} else {
console.log('user', user);
if (user.verified_email) {
res.send({
code: server_constants.RIS_CODE_EMAIL_ALREADY_VERIFIED,
msg: res.__("L'Email è già stata Verificata.")
msg: tools.getres__("L'Email è già stata Verificata", res)
});
} else {
user.verified_email = true;
user.lasttimeonline = new Date();
user.save().then(() => {
//console.log("TROVATOOOOOO!");
res.send({ code: server_constants.RIS_CODE_EMAIL_VERIFIED, msg: res.__('Email Verificata!') });
res.send({ code: server_constants.RIS_CODE_EMAIL_VERIFIED, msg: tools.getres__('EMAIL_VERIF', res) });
});
}
}
@@ -91,14 +95,14 @@ router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => {
User.findByEmail(idapp, email).then((user) => {
if (!user) {
return res.status(404).send();
return res.status(200).send({ code: server_constants.RIS_CODE_EMAIL_NOT_EXIST, msg: '' });
} else {
// Creo il tokenforgot
user.tokenforgot = jwt.sign(user._id.toHexString(), process.env.SIGNCODE).toString();
user.date_tokenforgot = new Date();
user.lasttimeonline = new Date();
user.save().then(async () => {
await sendemail.sendEmail_RequestNewPassword(res.locale, user.email, user.idapp, user.tokenforgot);
await sendemail.sendEmail_RequestNewPassword(res.locale, user, user.email, user.idapp, user.tokenforgot);
res.send({ code: server_constants.RIS_CODE_OK, msg: '' });
});
}
@@ -426,12 +430,18 @@ router.get('/loadsite/:userId/:idapp/:sall', authenticate_noerror, (req, res) =>
newstosent = Newstosent.findAllIdApp(idapp);
}
return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist, mypage, gallery, paymenttype])
let calcstat = null;
if (req.user)
calcstat = User.calculateStat(idapp, req.user.username);
return Promise.all([bookedevent, eventlist, operators, wheres, contribtype, settings, permissions, disciplines, newstosent, mailinglist, mypage, gallery, paymenttype, calcstat])
.then((arrdata) => {
// console.table(arrdata);
const myuser = req.user;
if (myuser) {
myuser.password = '';
myuser._doc.calcstat = arrdata[13];
}
res.send({

View File

@@ -0,0 +1,53 @@
const express = require('express');
const router = express.Router();
const tools = require('../tools/general');
const server_constants = require('../tools/server_constants');
const { authenticate } = require('../middleware/authenticate');
const mongoose = require('mongoose');
const { User } = require('../models/user');
const _ = require('lodash');
const { ObjectID } = require('mongodb');
const { ExtraList } = require('../models/extralist');
router.post('/load', async (req, res) => {
const idapp = req.body.idapp;
const username = req.body.username;
let datastat = {
num_tot_lista: await ExtraList.getTotInLista(idapp),
num_reg_lista: await ExtraList.getRegDellaLista(idapp),
num_reg: await User.getUsersRegistered(idapp),
lastsreg: await User.getLastUsers(idapp),
checkuser: await User.checkUser(idapp, username),
};
// console.table(datastat.lastsreg);
/*
let datastat = {
num_tot_lista: 80,
num_reg: 40,
lastsreg: [
{ username: 'prova3', name: 'Datti', surname: 'Una Mossa', nationality: 'gb', date_reg: new Date()},
{ username: 'prova2', name: 'Pinco', surname: 'Pallino', nationality: 'de', date_reg: new Date()},
{ username: 'paoloar77', name: 'Paolo', surname: 'Arena', nationality: 'it', date_reg: new Date()},
{ username: 'mariorossi', name: 'Mario', surname: 'Rossi', nationality: 'es', date_reg: new Date()},
{ username: 'prova4', name: 'Quanto', surname: 'Siamo Fighi', nationality: 'uk', date_reg: new Date()},
{ username: 'prova5', name: 'Secondo', surname: 'PPP', nationality: 'sl', date_reg: new Date()},
]
};
*/
res.send({ datastat });
});
module.exports = router;

View File

@@ -11,6 +11,8 @@ const shared_consts = require('../tools/shared_nodejs');
const server_constants = require('../tools/server_constants');
const telegrambot = require('../telegram/telegrambot');
const _ = require('lodash');
const reg = require('../reg/registration');
@@ -44,7 +46,7 @@ function getMobileComplete(user) {
// POST /users
router.post('/', async (req, res) => {
tools.mylog("POST /users");
const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile', 'aportador_solidario', 'already_registered']);
const body = _.pick(req.body, ['email', 'password', 'username', 'name', 'surname', 'idapp', 'keyappid', 'lang', 'profile', 'aportador_solidario']);
const user = new User(body);
// tools.mylog("LANG PASSATO = " + user.lang, "IDAPP", user.idapp);
@@ -53,6 +55,8 @@ router.post('/', async (req, res) => {
user.verified_email = false;
user.ipaddr = reg.getiPAddressUser(req);
user.lasttimeonline = new Date();
user.date_reg = new Date();
user.date_temp_reg = new Date();
// user.perm = 3;
if (tools.testing()) {
user.verified_email = true;
@@ -86,9 +90,34 @@ router.post('/', async (req, res) => {
let recextra = null;
if (user.already_registered) {
recextra = await ExtraList.findByCellAndNameSurname(user.idapp, getMobileComplete(user), user.name, user.surname);
let nomeaportador_corretto = "";
if (recextra) {
nomeaportador_corretto = recextra.aportador_solidario_name_surname;
if (nomeaportador_corretto === '')
nomeaportador_corretto = recextra.aportador_solidario_originale_name_surname;
}
namesurname_aportador_reg = await User.getNameSurnameByUsername(user.idapp, user.aportador_solidario);
if (namesurname_aportador_reg !== '' && namesurname_aportador_reg !== nomeaportador_corretto) {
// Si sta tentando di registrare una persona sotto che non corrisponde!
let msg = 'L\'utente ' + user.name + ' ' + user.surname + ' si sta registrando con il link di ' + user.aportador_solidario + ' (' + namesurname_aportador_reg + ') ' +
'invece è assegnato a ' + nomeaportador_corretto;
telegrambot.sendMsgTelegramToTheManagers(user.idapp, msg);
res.status(400).send({ code: server_constants.RIS_CODE_USER_NOT_THIS_APORTADOR, msg: '' });
return 1;
}
const already_registered = recextra;
// Check if is an other people aportador_solidario
if (already_registered) {
// Check in the extraList if is present!
recextra = await ExtraList.findByCellAndNameSurname(user.idapp, getMobileComplete(user), user.name, user.surname);
if (!recextra) {
res.status(400).send({ code: server_constants.RIS_CODE_USER_EXTRALIST_NOTFOUND, msg: '' });
return 1;
@@ -102,6 +131,15 @@ router.post('/', async (req, res) => {
user.aportador_solidario_ind_order = recextra.aportador_solidario_ind_order;
user.note = recextra.note;
if (recextra.is_staff) {
user.perm = shared_consts.Permissions.Manager;
}
if (recextra.username === 'paoloar77') {
user.perm = shared_consts.Permissions.Manager + shared_consts.Permissions.Admin;
}
const useraportador = await ExtraList.findByIndOrder(user.idapp, user.aportador_solidario_ind_order);
if (useraportador)
user.aportador_solidario = useraportador.username;