diff --git a/emails/registration_sip/enUs/html.pug b/emails/registration_sip/enUs/html.pug new file mode 100755 index 0000000..5dd333b --- /dev/null +++ b/emails/registration_sip/enUs/html.pug @@ -0,0 +1,38 @@ +p Welcome #{name} to the portal #{nomeapp}! +p Your access data to remember are: +span Username:  + strong #{username}
+span Forgot your Password? :  + strong Find it here
+span Email:  + strong #{emailto}
+p To confirm the registration click on the button, or click here #{strlinkreg}: +div.divbtn + button.btn.btn-lg Verify Registration + + +p You could enter to the site and Login. + + +style(type="text/css"). + html, body { + padding: 0; + margin: 0; + } + + .divbtn { + display: flex; + align-items: center; + justify-content: center; + } + + .btn-lg { + padding: 5px; + margin: 5px; + font-size: 26px; + cursor: pointer; + color: white; + background: #027be3 !important; + border-radius: 28px; + + } diff --git a/emails/registration_sip/enUs/subject.pug b/emails/registration_sip/enUs/subject.pug new file mode 100755 index 0000000..b65f1d4 --- /dev/null +++ b/emails/registration_sip/enUs/subject.pug @@ -0,0 +1 @@ +=`Confirm Registration to ${nomeapp}` diff --git a/emails/registration_sip/esEs/html.pug b/emails/registration_sip/esEs/html.pug new file mode 100755 index 0000000..2ef9213 --- /dev/null +++ b/emails/registration_sip/esEs/html.pug @@ -0,0 +1,37 @@ +p ¡Bienvenido #{name} al portal #{nomeapp}! +p Sus datos de acceso a recordar son: +Nombre Usuario:  + strong #{username}
+span ¿Olvidaste tu contraseña? :  + strong Encuéntrelo aquí
+span Email:  + strong #{emailto}
+p Para confirmar el registro haz clic en el botón: +div.divbtn + button.btn.btn-lg Verificar registro + +p Así puedes entrar al sitio e iniciar la sesión. + + +style(type="text/css"). + html, body { + padding: 0; + margin: 0; + } + + .divbtn { + display: flex; + align-items: center; + justify-content: center; + } + + .btn-lg { + padding: 5px; + margin: 5px; + font-size: 26px; + cursor: pointer; + color: white; + background: #027be3 !important; + border-radius: 28px; + + } diff --git a/emails/registration_sip/esEs/subject.pug b/emails/registration_sip/esEs/subject.pug new file mode 100755 index 0000000..0249b3d --- /dev/null +++ b/emails/registration_sip/esEs/subject.pug @@ -0,0 +1 @@ +=`Confirmar registro a ${nomeapp}` diff --git a/emails/registration_sip/it/html.pug b/emails/registration_sip/it/html.pug new file mode 100755 index 0000000..c170004 --- /dev/null +++ b/emails/registration_sip/it/html.pug @@ -0,0 +1,37 @@ +p Benvenuto #{name} nel portale di #{nomeapp}! +p I tuoi dati di accesso da ricordare sono: +span Username:  + strong #{username}
+span hai dimenticato la Password? :  + strong Trovala qui
+span Email:  + strong #{emailto}
+p Per confermare la registrazione clicca sul bottone, oppure qui: #{strlinkreg}: +div.divbtn + button.btn.btn-lg Verifica Registrazione + +p Potrai cosi' accedere al sito digitando i tuoi dati di accesso. + + +style(type="text/css"). + html, body { + padding: 0; + margin: 0; + } + + .divbtn { + display: flex; + align-items: center; + justify-content: center; + } + + .btn-lg { + padding: 5px; + margin: 5px; + font-size: 26px; + cursor: pointer; + color: white; + background: #027be3 !important; + border-radius: 28px; + + } diff --git a/emails/registration_sip/it/subject.pug b/emails/registration_sip/it/subject.pug new file mode 100755 index 0000000..19c2e8a --- /dev/null +++ b/emails/registration_sip/it/subject.pug @@ -0,0 +1 @@ +=`Confermare la Registrazione a ${nomeapp}` diff --git a/src/server/config/config.js b/src/server/config/config.js index 52ce048..30b5c82 100755 --- a/src/server/config/config.js +++ b/src/server/config/config.js @@ -132,6 +132,22 @@ if (process.env.NODE_ENV === 'production') { pathreg_add:'', abilitanave: false, }, + { + idapp: '9', + name: 'SalviamoIlPianeta', + adminemail: 'noisalviamoilpianeta@gmail.com', + manageremail: '', + replyTo: '', + host: 'https://salviamoilpianeta.app', + portapp: '0', + dir: '/var/www/salviamoilpianeta.app', + email_from: 'noisalviamoilpianeta@gmail.com', + email_pwd: '', + telegram_key:'1202788747:AAErwzIsD7k-3Yj5AX6ci3p7ELMuyASq4vA', + telegram_bot_name: 'SalviamoIlPianeta_bot', + pathreg_add:'_sip', + abilitanave: false, + }, ]; } else if (process.env.NODE_ENV === 'test') { // ---------------- AMBIENTE DI TEST -------------------- @@ -244,6 +260,22 @@ if (process.env.NODE_ENV === 'production') { pathreg_add:'', abilitanave: false, }, + { + idapp: '9', + name: 'SalviamoIlPianeta (Server Test)', + adminemail: 'noisalviamoilpianeta@gmail.com', + manageremail: '', + replyTo: '', + host: 'https://test.salviamoilpianeta.app', + portapp: '0', + dir: '/var/www/test.salviamoilpianeta.app', + email_from: 'info.pianetalibero@gmail.com', + email_pwd: '2df135e2b6c02b2c68ec6bf6b103751fcb4dfc48c57d0acb302482358ee8141fmaDuooPabDvlThiBI2XMyA==', + telegram_key:'1049833543:AAE1RhGUJVdm0N_vrj0ijHZ04GCkKjl8TuQ', + telegram_bot_name: 'TestSalviamoIlPianeta_bot', + pathreg_add:'_sip', + abilitanave: false, + }, ]; } else { // ---------------- AMBIENTE IN L O C A L E -------------------- @@ -354,6 +386,21 @@ if (process.env.NODE_ENV === 'production') { pathreg_add:'', abilitanave: false, }, + { + idapp: '9', + name: 'SalviamoIlPianeta', + adminemail: 'paolo.arena77@gmail.com', + manageremail: '', + host: 'http://localhost', + portapp: '8087', + dir: '', + email_from: 'info.pianetalibero@gmail.com', + email_pwd: '66ffeb915e71fada64ad5c26947dd087c262be3b343734a0447c6dee534b888aZcfbjXEuMBWKxvbh60cniw==', + telegram_bot_name: 'paotestlocalebot', + telegram_key:'353996190:AAEcEbfrm_zTK6mBKf8ye9j-PXt958SDxew', + pathreg_add:'_sip', + abilitanave: false, + }, ]; } diff --git a/src/server/models/user.js b/src/server/models/user.js index da357f0..2644881 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -790,7 +790,6 @@ UserSchema.statics.getLangByIndOrder = async function (idapp, ind_order) { }; - UserSchema.statics.SetLang = async function (idapp, id, lang) { const User = this; @@ -969,15 +968,15 @@ UserSchema.statics.getUsersListByParams = function (params) { */ UserSchema.statics.getFieldsForSearch = function () { - return [{field: 'username', type: tools.FieldType.string}, - {field: 'name', type: tools.FieldType.string }, - {field: 'ind_order', type: tools.FieldType.number }, - {field: 'surname', type: tools.FieldType.string }, - {field: 'email', type: tools.FieldType.string }, - {field: 'profile.cell', type: tools.FieldType.string}, - {field: 'profile.email_paypal', type: tools.FieldType.string}, - {field: 'profile.username_telegram', type: tools.FieldType.string}, - {field: 'aportador_solidario', type: tools.FieldType.string}] + return [{ field: 'username', type: tools.FieldType.string }, + { field: 'name', type: tools.FieldType.string }, + { field: 'ind_order', type: tools.FieldType.number }, + { field: 'surname', type: tools.FieldType.string }, + { field: 'email', type: tools.FieldType.string }, + { field: 'profile.cell', type: tools.FieldType.string }, + { field: 'profile.email_paypal', type: tools.FieldType.string }, + { field: 'profile.username_telegram', type: tools.FieldType.string }, + { field: 'aportador_solidario', type: tools.FieldType.string }] }; UserSchema.statics.executeQueryTable = function (idapp, params) { @@ -1139,6 +1138,96 @@ UserSchema.statics.getUsersQualified = async function (idapp, numinvitati) { }; +UserSchema.statics.visuUtentiNonInNavi = async function (idapp) { + const User = this; + + const arrusers = await User.find({ + idapp, + $or: [ + { + 'profile.special_req': true + }, + { + verified_email: true, + 'profile.teleg_id': { $gt: 0 }, + 'profile.paymenttypes': { "$in": ['paypal'] }, + 'profile.saw_and_accepted': shared_consts.ALL_SAW_AND_ACCEPTED, + 'profile.saw_zoom_presentation': true, + 'profile.my_dream': { $exists: true }, + $and: [ + { "$expr": { "$gt": [{ "$strLenCP": "$profile.my_dream" }, 10] } }, + { "$expr": { "$gt": [{ "$strLenCP": "$profile.email_paypal" }, 6] } } + ], + }] + + }, { + name: 1, + surname: 1, + username: 1, + ind_order: 1, + }); + + + let num = 0; + let innave = 0; + let noninnave = 0; + let mystr = 'visuUtentiNonInNavi: ' + tools.ACAPO; + let reg = 0; + let num0inv = 0; + let num1inv = 0; + let num2inv = 0; + let numnoinlista = 0; + + for (const user of arrusers) { + user.numinvitati = await User.getnumInvitati(idapp, user.username); + reg++; + let mianave = await Nave.findOne({ idapp, ind_order: user.ind_order }); + let mialistaingresso = await ListaIngresso.findOne({ idapp, ind_order: user.ind_order }); + let trovato = false; + if (!mianave) { + mystr += user.username + ' ' + user.name + ' ' + user.surname + ' [' + user.ind_order + '] [inv=' + user.numinvitati + ']' + noninnave++; + trovato = true; + } else { + innave++; + } + + if (!mialistaingresso) { + mystr += ' NO IN LISTA INGRESSO!'; + trovato = true; + numnoinlista++; + } + + if (trovato) + mystr += tools.ACAPO; + + if (user.numinvitati === 0) { + num0inv++; + } + if (user.numinvitati === 1) { + num1inv++; + } + if (user.numinvitati >= 2) { + num2inv++; + } + } + + + mystrstart = 'Registrati: ' + reg + tools.ACAPO; + mystrstart += '0 Invitati: ' + num0inv + tools.ACAPO; + mystrstart += '1 Invitato: ' + num1inv + tools.ACAPO; + mystrstart += '2 o più Invitati: ' + num2inv + tools.ACAPO; + mystrstart += 'Presente in Nave: ' + innave + tools.ACAPO; + mystrstart += 'Non in Nave: ' + noninnave + tools.ACAPO; + mystrstart += 'Non in Lista Imbarco: ' + numnoinlista + tools.ACAPO; + + mystrstart += tools.ACAPO; + + mystr = mystrstart + mystr; + + return { num, mystr }; +}; + UserSchema.statics.getNumUsersQualified = async function (idapp, numinvitati) { arrrec = await this.getUsersQualified(idapp, numinvitati); diff --git a/src/server/router/index_router.js b/src/server/router/index_router.js index c218712..0c20fe8 100755 --- a/src/server/router/index_router.js +++ b/src/server/router/index_router.js @@ -370,7 +370,7 @@ router.patch('/chval', authenticate, async (req, res) => { // 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)) { + if ((!User.isAdmin(req.user.perm) && !User.isManager(req.user.perm) && !User.isTutor(req.user.perm)) && !(req.user._id.toString() === id) && !tools.ModificheConsentite(mydata.table, fieldsvalue)) { // If without permissions, exit return res.status(404).send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' }); } diff --git a/src/server/router/notevole_router.js b/src/server/router/site_router.js similarity index 100% rename from src/server/router/notevole_router.js rename to src/server/router/site_router.js diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index bcf9dcf..0d64b0f 100755 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -420,6 +420,8 @@ router.post('/dbop', authenticate, async (req, res) => { let ris = await User.DbOp(idapp, mydata); + let mystr = ''; + try { if (mydata.dbop === 'creaNavi') { @@ -462,19 +464,21 @@ router.post('/dbop', authenticate, async (req, res) => { ris = { num }; } else if (mydata.dbop === 'visuListaNave') { - const mystr = await Nave.showListaOrd(idapp); + mystr = await Nave.showListaOrd(idapp); ris = { mystr }; + } else if (mydata.dbop === 'visuUtentiNonInNavi') { + ris = await User.visuUtentiNonInNavi(idapp); } else if (mydata.dbop === 'pulisciNonPresenzeInNave') { - const mystr = await Nave.pulisciNonPresenzeInNave(idapp); + mystr = await Nave.pulisciNonPresenzeInNave(idapp); ris = { mystr }; } else if (mydata.dbop === 'checkInserimentiUtentiInNave') { - const mystr = await Nave.checkIfDevoAggiungereInNave(idapp); + mystr = await Nave.checkIfDevoAggiungereInNave(idapp); ris = { mystr }; } else if (mydata.dbop === 'visuListaIngresso') { - const mystr = await ListaIngresso.showListaOrd(idapp, false); + mystr = await ListaIngresso.showListaOrd(idapp, false); ris = { mystr }; } else if (mydata.dbop === 'visuListaIngressoNuovi') { - const mystr = await ListaIngresso.showListaOrd(idapp, true); + mystr = await ListaIngresso.showListaOrd(idapp, true); ris = { mystr }; } else if (mydata.dbop === 'visuNaviUtentiEliminati') { ris = await Nave.visuNaviUtentiEliminati(idapp); @@ -620,7 +624,7 @@ router.post('/dbop', authenticate, async (req, res) => { ris = { placca }; } else if (mydata.dbop === 'visuNave') { - const mystr = await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col)); + mystr = await Nave.getNavePos(idapp, parseInt(mydata.riga), parseInt(mydata.col)); const visu_nave_Bot = await Settings.getValDbSettings(idapp, 'VISU_NAVE_BOT'); if (visu_nave_Bot) diff --git a/src/server/server.js b/src/server/server.js index f893282..b42707b 100755 --- a/src/server/server.js +++ b/src/server/server.js @@ -57,7 +57,7 @@ const todos_router = require('./router/todos_router'); const test_router = require('./router/test_router'); const projects_router = require('./router/projects_router'); const users_router = require('./router/users_router'); -const notevole_router = require('./router/notevole_router'); +const site_router = require('./router/site_router'); const admin_router = require('./router/admin_router'); const { MyEvent } = require('./models/myevent'); @@ -121,7 +121,7 @@ app.use('/todos', todos_router); app.use('/test', test_router); app.use('/projects', projects_router); app.use('/users', users_router); -app.use('/ayni', notevole_router); +app.use('/site', site_router); app.use('/admin', admin_router); // catch 404 and forward to error handler @@ -253,16 +253,18 @@ function testmsgwebpush() { // console.log('nomeapp 1: ' , tools.getNomeAppByIdApp(1)); // console.log('nomeapp 2: ' , tools.getNomeAppByIdApp(2)); - User.findOne().then((user) => { - if (user !== null) { - tools.sendNotificationToUser(user._id, 'Titolo msg Test', 'Test Messaggio', '/', 'msg') - .then(ris => { - if (ris) { + User.find({ username: 'paoloar77' }).then((arrusers) => { + if (arrusers !== null) { + for (const user of arrusers) { + tools.sendNotificationToUser(user._id, 'Titolo msg Test', 'Test Messaggio', '/', 'msg') + .then(ris => { + if (ris) { - } else { - // already sent the error on calling sendNotificationToUser - } - }) + } else { + // already sent the error on calling sendNotificationToUser + } + }) + } } }); @@ -270,7 +272,7 @@ function testmsgwebpush() { // Cron every X minutes cron.schedule('*/2 * * * *', () => { - console.log('Running Cron Job'); + // console.log('Running Cron Job'); mycron(); }); diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js index 9a38623..9f2103a 100755 --- a/src/server/telegram/telegrambot.js +++ b/src/server/telegram/telegrambot.js @@ -1040,7 +1040,17 @@ class Telegram { } catch (e) { miomenu = Menu['it'][key]; } - return (miomenu === menuselect); + let trovato = (miomenu === menuselect); + if (!trovato) { + try { + let miomenu2 = Menu['it'][key]; + trovato = (miomenu2 === menuselect); + }catch (e) { + + } + } + + return trovato; } async isMenu(rec, msg) { diff --git a/src/server/tools/general.js b/src/server/tools/general.js index 5ff46a9..0ffbc8a 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -573,9 +573,12 @@ module.exports = { return Subscription.find({ userId }, (err, subscriptions) => { if (err) { console.error(`Error occurred while getting subscriptions`); - res.status(500).json({ - error: 'Technical error occurred' - }); + // res.status(500).json({ + // error: 'Technical error occurred' + // }); + + //++ Rimuovi questo record !? + return false; } else { let conta = 0;