- Nave
- Requirements - Send Msg to Passeggeri
This commit is contained in:
@@ -12,6 +12,7 @@ const sendemail = require('../sendemail');
|
||||
const { authenticate, authenticate_noerror } = require('../middleware/authenticate');
|
||||
|
||||
const { ObjectID } = require('mongodb');
|
||||
const { ListaIngresso } = require('../models/listaingresso');
|
||||
|
||||
const mongoose = require('mongoose');
|
||||
const cfgserver = mongoose.model('cfgserver');
|
||||
@@ -27,6 +28,7 @@ if (!fs.existsSync(folder)) {
|
||||
const _ = require('lodash');
|
||||
|
||||
const { User } = require('../models/user');
|
||||
const { Nave } = require('../models/nave');
|
||||
const { ExtraList } = require('../models/extralist');
|
||||
const { Booking } = require('../models/booking');
|
||||
const { Operator } = require('../models/operator');
|
||||
@@ -52,6 +54,15 @@ const tools = require('../tools/general');
|
||||
const server_constants = require('../tools/server_constants');
|
||||
const actions = require('./api/actions');
|
||||
|
||||
UserCost = {
|
||||
FIELDS_REQUISITI: ['verified_email',
|
||||
'profile.teleg_id',
|
||||
'profile.saw_zoom_presentation',
|
||||
'profile.saw_and_accepted',
|
||||
'profile.email_paypal',
|
||||
'profile.my_dream',
|
||||
'profile.paymenttypes']
|
||||
};
|
||||
|
||||
router.post(process.env.LINKVERIF_REG, (req, res) => {
|
||||
const body = _.pick(req.body, ['idapp', 'idlink']);
|
||||
@@ -77,7 +88,10 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
|
||||
user.lasttimeonline = new Date();
|
||||
user.save().then(() => {
|
||||
//console.log("TROVATOOOOOO!");
|
||||
res.send({ code: server_constants.RIS_CODE_EMAIL_VERIFIED, msg: tools.getres__('EMAIL', res) + ' ' + tools.getres__('VERIF', res) });
|
||||
res.send({
|
||||
code: server_constants.RIS_CODE_EMAIL_VERIFIED,
|
||||
msg: tools.getres__('EMAIL', res) + ' ' + tools.getres__('VERIF', res)
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -93,7 +107,7 @@ router.post(process.env.LINKVERIF_REG, (req, res) => {
|
||||
router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => {
|
||||
const body = _.pick(req.body, ['idapp', 'email']);
|
||||
const idapp = body.idapp;
|
||||
const email = body.email;
|
||||
const email = body.email.toLowerCase().trim();
|
||||
console.log("POST " + process.env.LINK_REQUEST_NEWPASSWORD + " idapp= " + idapp + " email = " + email);
|
||||
|
||||
User.findByEmail(idapp, email).then(async (user) => {
|
||||
@@ -124,7 +138,7 @@ router.post(process.env.LINK_REQUEST_NEWPASSWORD, (req, res) => {
|
||||
router.post(process.env.LINK_UPDATE_PWD, (req, res) => {
|
||||
const body = _.pick(req.body, ['idapp', 'email', 'tokenforgot', 'password']);
|
||||
const idapp = body.idapp;
|
||||
const email = body.email;
|
||||
const email = body.email.toLowerCase().trim();
|
||||
const tokenforgot = body.tokenforgot;
|
||||
const password = body.password;
|
||||
const msg = "Richiesta Nuova Password: idapp= " + idapp + " email = " + email;
|
||||
@@ -198,6 +212,10 @@ function getTableByTableName(tablename) {
|
||||
mytable = Permission;
|
||||
else if (tablename === 'mailinglist')
|
||||
mytable = MailingList;
|
||||
else if (tablename === 'navi')
|
||||
mytable = Nave;
|
||||
else if (tablename === 'listaingressos')
|
||||
mytable = ListaIngresso;
|
||||
|
||||
return mytable
|
||||
}
|
||||
@@ -255,8 +273,63 @@ router.post('/gettable', authenticate, (req, res) => {
|
||||
|
||||
});
|
||||
|
||||
async function checkIfSbloccatiRequisiti(idapp, allData, id) {
|
||||
|
||||
router.patch('/chval', authenticate, (req, res) => {
|
||||
if (await Nave.findByIndOrder(idapp, allData.myuser.ind_order)) {
|
||||
// Se già sei dentro la Nave, allora sei OK
|
||||
return true;
|
||||
}
|
||||
|
||||
// Controlla se Sblocca i 7 requisiti
|
||||
const is7req = await User.isUserQualified7(idapp, allData.myuser.username);
|
||||
const is9req = await User.isUserQualified9(idapp, allData.myuser.username);
|
||||
|
||||
const userlista = await ListaIngresso.findByIndOrder(idapp, allData.myuser.ind_order);
|
||||
if (!userlista) {
|
||||
// Se non sono ancora dentro alla lista, allora controllo
|
||||
|
||||
if (!allData.precDataUser.is7req && is7req) {
|
||||
// ORA HAI I 7 REQUISITI !
|
||||
const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_7_REQUISITI', allData.myuser.lang);
|
||||
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
|
||||
|
||||
if (tools.isAbilitaNave(idapp)) {
|
||||
// Aggiungilo alla ListaIngresso
|
||||
ris = await ListaIngresso.addUserInListaIngresso(idapp, allData.myuser.ind_order, allData.myuser.lang, true, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!allData.precDataUser.is9req && is9req) {
|
||||
// ORA HAI I 9 REQUISITI !
|
||||
const msgtext = telegrambot.getCiao(idapp, allData.myuser.username, allData.myuser.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.myuser.lang);
|
||||
telegrambot.sendMsgTelegram(idapp, allData.myuser.username, msgtext, true); // Anche a STAFF
|
||||
}
|
||||
|
||||
// CHECK APORTADOR SOLIDARIO:
|
||||
if (!!allData.useraportador) {
|
||||
const is9reqAportador = await User.isUserQualified9(idapp, allData.myuser.aportador_solidario);
|
||||
|
||||
if (!allData.precDataAportador.is9req && is9reqAportador) {
|
||||
// ORA HAI I 9 REQUISITI !
|
||||
const msgtext = telegrambot.getCiao(idapp, allData.myuser.aportador_solidario, allData.useraportador.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.useraportador.lang);
|
||||
telegrambot.sendMsgTelegram(idapp, allData.useraportador.username, msgtext, true); // Anche a STAFF
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
async function getInfoUser(idapp, username) {
|
||||
return {
|
||||
username,
|
||||
is7req: await User.isUserQualified7(idapp, username),
|
||||
is9req: await User.isUserQualified9(idapp, username),
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
router.patch('/chval', authenticate, async (req, res) => {
|
||||
// const idapp = req.body.idapp;
|
||||
const id = req.body.data.id;
|
||||
const idapp = req.body.idapp;
|
||||
@@ -265,7 +338,7 @@ router.patch('/chval', authenticate, (req, res) => {
|
||||
const mytable = getTableByTableName(mydata.table);
|
||||
const fieldsvalue = mydata.fieldsvalue;
|
||||
|
||||
tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
|
||||
// tools.mylogshow('PATCH CHVAL: ', id, fieldsvalue);
|
||||
|
||||
// If I change my record...
|
||||
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && !(req.user._id.toString() === id) && !tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
||||
@@ -273,7 +346,20 @@ router.patch('/chval', authenticate, (req, res) => {
|
||||
return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' });
|
||||
}
|
||||
|
||||
mytable.findByIdAndUpdate(id, { $set: fieldsvalue }).then(async (rec) => {
|
||||
const camporequisiti = UserCost.FIELDS_REQUISITI.includes(Object.keys(fieldsvalue)[0]);
|
||||
|
||||
let allData = {};
|
||||
if (mydata.table === 'users') {
|
||||
if (camporequisiti) {
|
||||
allData = {};
|
||||
allData.myuser = await User.getUserById(idapp, id);
|
||||
allData.precDataUser = await getInfoUser(idapp, allData.myuser.username);
|
||||
allData.useraportador = await User.getUserByAportador(idapp, allData.myuser.aportador_solidario);
|
||||
allData.precDataAportador = await getInfoUser(idapp, allData.myuser.aportador_solidario);
|
||||
}
|
||||
}
|
||||
|
||||
await mytable.findByIdAndUpdate(id, { $set: fieldsvalue }).then(async (rec) => {
|
||||
// tools.mylogshow(' REC TO MODIFY: ', rec);
|
||||
if (!rec) {
|
||||
return res.status(404).send();
|
||||
@@ -285,6 +371,12 @@ router.patch('/chval', authenticate, (req, res) => {
|
||||
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
|
||||
}
|
||||
|
||||
if (mydata.table === 'users') {
|
||||
if (camporequisiti) {
|
||||
await checkIfSbloccatiRequisiti(idapp, allData, id);
|
||||
}
|
||||
}
|
||||
|
||||
if (tools.ModificheConsentite(mydata.table, fieldsvalue)) {
|
||||
let msg = '';
|
||||
if (mydata.table === 'users') {
|
||||
@@ -294,7 +386,13 @@ router.patch('/chval', authenticate, (req, res) => {
|
||||
msg = `Variato l'invitante di ` + rec.name + ' ' + rec.surname + '\nmodificato da ' + req.user.name + ' ' + req.user.surname + ' \n' +
|
||||
'Prima: ' + nomecognomeas + ' (' + rec.aportador_solidario + ')\n' +
|
||||
'Dopo: ' + nomecognomenuovo + ' (' + fieldsvalue.aportador_solidario + ') ]';
|
||||
|
||||
// Metti l'iniziale
|
||||
if (!await User.AportadorOrig(id)) {
|
||||
await mytable.findByIdAndUpdate(id, { $set: { aportador_iniziale: fieldsvalue.aportador_solidario } }, { new: false });
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (msg !== '')
|
||||
@@ -351,7 +449,9 @@ router.delete('/delrec/:table/:id', authenticate, (req, res) => {
|
||||
|
||||
const mytable = getTableByTableName(tablename);
|
||||
|
||||
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && (tablename !== 'extralist')) {
|
||||
const fields = { 'ALL': 1 };
|
||||
|
||||
if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm)) && (tablename !== 'extralist') && !tools.ModificheConsentite(tablename, fields, id, req.user)) {
|
||||
// If without permissions, exit
|
||||
return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' });
|
||||
}
|
||||
@@ -366,7 +466,7 @@ router.delete('/delrec/:table/:id', authenticate, (req, res) => {
|
||||
tools.mylog('DELETED ', rec._id);
|
||||
|
||||
// Do extra things after deleted
|
||||
return actions.doOtherThingsAfterDeleted(tablename, rec).then((ris) => {
|
||||
return actions.doOtherThingsAfterDeleted(tablename, rec).then(async (ris) => {
|
||||
if (ris) {
|
||||
|
||||
if (notifBot) {
|
||||
@@ -378,7 +478,7 @@ router.delete('/delrec/:table/:id', authenticate, (req, res) => {
|
||||
|
||||
addtext = 'Eliminato il Record "' + nomerecord + '" dalla tabella ' + tablename + '\n' +
|
||||
'Eseguito da ' + req.user.name + ' ' + req.user.surname + ' \n';
|
||||
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
|
||||
await telegrambot.sendMsgTelegramToTheManagers(idapp, addtext);
|
||||
}
|
||||
|
||||
tools.mylog('DELETED Others things ...');
|
||||
@@ -549,7 +649,8 @@ router.get(process.env.LINK_CHECK_UPDATES, authenticate, (req, res) => {
|
||||
// If User is Admin, then send user Lists
|
||||
if (User.isAdmin(req.user.perm)) {
|
||||
// Send UsersList
|
||||
usersList = User.getUsersList(req.user.idapp)
|
||||
// usersList = User.getUsersList(req.user.idapp)
|
||||
usersList = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user