From 8ed9bd941fec112f84d9e878ad226121a6cc0896 Mon Sep 17 00:00:00 2001 From: paoloar77 Date: Tue, 8 Feb 2022 23:14:08 +0100 Subject: [PATCH] - Gruppi (3) - lista degli utenti del gruppo --- logmanagers.txt | 5 +- src/server/models/mygroup.js | 3 +- src/server/models/user.js | 10 +- src/server/router/iscrittiConacreis_router.js | 2 +- src/server/router/users_router.js | 4 +- src/server/sendemail.js | 4 +- src/server/telegram/telegrambot.js | 32 +++--- src/server/tools/general.js | 103 ++++++++++++++++-- src/server/tools/shared_nodejs.js | 2 + 9 files changed, 129 insertions(+), 36 deletions(-) diff --git a/logmanagers.txt b/logmanagers.txt index f42b8c9..4ee1723 100755 --- a/logmanagers.txt +++ b/logmanagers.txt @@ -344,4 +344,7 @@ Dom 16/01 ORE 22:09: [Inviato a Paolo Arena (paoloar77)]: Dom 16/01 ORE 22:11: [Inviato a Paolo Arena (paoloar77)]: 🔥 Si è appena Registrato "Paoloar775 Paoloar775 (paoloar775) Dom 16/01 ORE 22:14: [Inviato a Paolo Arena (paoloar77)]: -🔥 Si è appena Registrato "Pao Are (paoloar775) \ No newline at end of file +🔥 Si è appena Registrato "Pao Are (paoloar775) +Lun 07/02 ORE 22:48: [Inviato a undefined undefined (paoloar77)]: +🔥 Acaba de registrarse " (paoloar775) (n. %s)" +(Invitado de %s) \ No newline at end of file diff --git a/src/server/models/mygroup.js b/src/server/models/mygroup.js index 6197ae2..305c191 100755 --- a/src/server/models/mygroup.js +++ b/src/server/models/mygroup.js @@ -200,7 +200,7 @@ MyGroupSchema.statics.getInfoGroupByGroupname = async function(idapp, groupname) }; -MyGroupSchema.statics.getGroupsByUsername = async function(idapp, username) { +MyGroupSchema.statics.getGroupsByUsername = async function(idapp, username, req) { try { const {User} = require('../models/user'); @@ -251,6 +251,7 @@ MyGroupSchema.statics.getGroupsByUsername = async function(idapp, username) { listgroups, //listRequestUsersGroup, listSentRequestGroups, + mygroups: req.user.profile.mygroups, }; } catch (e) { diff --git a/src/server/models/user.js b/src/server/models/user.js index e0ccc7a..ab5b58c 100755 --- a/src/server/models/user.js +++ b/src/server/models/user.js @@ -1275,7 +1275,7 @@ UserSchema.statics.getArrUsernameFromFieldByUsername = async function( $or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}], }, myobj).then((ris) => ris ? ris._doc[field][subfield] : []); - if (arrrec.length > 0) { + if (arrrec && arrrec.length > 0) { return arrrec.map(m => m.username); } return []; @@ -1902,8 +1902,12 @@ UserSchema.statics.getNameSurnameByUsername = async function(idapp, username) { return User.findOne({ idapp, username, $or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}], - }, {name: 1, surname: 1}).then((rec) => { - return (!!rec) ? `${rec.name} ${rec.surname}` : ''; + }, {username: 1, name: 1, surname: 1}).then((rec) => { + let ris = rec.username; + if (!!rec && rec.name) { + ris = (`${rec.name} ${rec.surname}`) + } + return (!!rec) ? (`${rec.name} ${rec.surname}`) : ''; }).catch((e) => { console.error('getNameSurnameByUsername', e); }); diff --git a/src/server/router/iscrittiConacreis_router.js b/src/server/router/iscrittiConacreis_router.js index 77c926d..d6e8907 100755 --- a/src/server/router/iscrittiConacreis_router.js +++ b/src/server/router/iscrittiConacreis_router.js @@ -40,7 +40,7 @@ router.post('/', async (req, res) => { return 1; } - if (tools.blockwords(body.email) || tools.blockwords(body.name) || tools.blockwords(body.surname)) { + if (tools.blockwords(body.username) || tools.blockwords(body.email) || tools.blockwords(body.name) || tools.blockwords(body.surname)) { // tools.writeIPToBan(iscritti.ipaddr + ': [' + iscritti.username + '] ' + iscritti.name + ' ' + iscritti.surname); await tools.snooze(5000); return res.status(404).send(); diff --git a/src/server/router/users_router.js b/src/server/router/users_router.js index c4a530f..99d57b9 100755 --- a/src/server/router/users_router.js +++ b/src/server/router/users_router.js @@ -191,7 +191,7 @@ router.post('/', async (req, res) => { recuser = await User.findByCellAndNameSurname(user.idapp, user.profile.cell, user.name, user.surname); - if (recuser) { + if (recuser && user.name !== '' && user.surname !== '' && user.profile.cell !== '') { console.log('UTENTE GIA ESISTENTE:\n'); console.log(user); // User already registered! @@ -499,7 +499,7 @@ router.post('/groups', authenticate, (req, res) => { locale = req.body.locale; - return MyGroup.getGroupsByUsername(idapp, username).then((ris) => { + return MyGroup.getGroupsByUsername(idapp, username, req).then((ris) => { res.send(ris); }).catch((e) => { tools.mylog('ERRORE IN groups: ' + e.message); diff --git a/src/server/sendemail.js b/src/server/sendemail.js index 7ab33f5..f1d1d97 100755 --- a/src/server/sendemail.js +++ b/src/server/sendemail.js @@ -543,8 +543,8 @@ module.exports = { let out = myvar.replace('{urlunsubscribe}', urlunsibscribe); out = out.replace('{email}', mylocalsconf.emailto); - out = out.replace('{name}', mylocalsconf.name); - out = out.replace('{surname}', mylocalsconf.surname); + out = out.replace('{name}', mylocalsconf.name ? mylocalsconf.name : mylocalsconf.username); + out = out.replace('{surname}', mylocalsconf.surname ? mylocalsconf.surname : ''); return out }, diff --git a/src/server/telegram/telegrambot.js b/src/server/telegram/telegrambot.js index d855402..ffb21b5 100755 --- a/src/server/telegram/telegrambot.js +++ b/src/server/telegram/telegrambot.js @@ -3,7 +3,7 @@ const tools = require('../tools/general'); const appTelegram = [tools.FREEPLANET]; const appTelegram_TEST = [tools.FREEPLANET, tools.PDNM]; -const appTelegram_DEVELOP = [tools.PDNM]; +const appTelegram_DEVELOP = [tools.FREEPLANET]; const appTelegramFinti = ['2', tools.CNM]; const appTelegramDest = [tools.FREEPLANET, tools.FREEPLANET]; @@ -482,10 +482,7 @@ const txt_es = { emo.EXCLAMATION_MARK + '\nComprueba en el sitio %s y reescribe el nuevo código de 6 dígitos.', MSG_VERIFY_OK: emoji.get('grinning') + - ' Bienvenido %s! Ha verificado correctamente con el BOT. ' + - '\nSoy su asistente virtual.\nContinúa la guía paso a paso de vuelta a la página web.\n\n' + - 'Este chat le ayudará a ver rápidamente su pizarra y recibir alertas importantes sobre cómo proceder.\n\nUtilice el menú de abajo para comprobar su situación.' + - emo.GREEN_HEART, + ' Bienvenido %s! Ha verificado correctamente con el BOT. ' + emo.GREEN_HEART, MSG_ERR_UNKNOWN_VERIFY_CODE: 'Error al guardar en el servidor. Inténtalo de nuevo más tarde.', MSG_EXIT_TELEGRAM: 'La cuenta ha sido desconectada de Telegram BOT.', MSG_APORTADOR_USER_REGISTERED: emo.FIRE + @@ -653,6 +650,9 @@ module.exports = { let userdest = mylocalsconf.user.aportador_solidario; let langdest = mylocalsconf.user.lang; let NameFrom = `${mylocalsconf.user.name} ${mylocalsconf.user.surname}`; + if (!mylocalsconf.user.name) { + NameFrom = `${mylocalsconf.user.username}`; + } const index = mylocalsconf.user.index; let aportador = ''; @@ -670,8 +670,8 @@ module.exports = { userdest) + aportador; aportador = NameFrom; } - text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), - `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`); + let nome = tools.getNomeCognomeEUserNameByUser(mylocalsconf.user); + text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), nome); } let addtext = ''; @@ -801,8 +801,8 @@ module.exports = { if (!!user) { msg = msg.replace('{username}', user.username); - msg = msg.replace('{name}', user.name); - msg = msg.replace('{surname}', user.surname); + msg = msg.replace('{name}', user.name ? user.name : user.username); + msg = msg.replace('{surname}', user.surname ? user.surname : ''); if (!!user.profile.link_payment) msg = msg.replace('{link_paypalme}', user.profile.link_payment); if (!!user.profile.revolut) @@ -3390,17 +3390,15 @@ if (true) { await local_sendMsgTelegram(user.idapp, data.username, msgOrig); await local_sendMsgTelegram(user.idapp, data.userDest, msgDest); - } else if (data.action === InlineConferma.RISPOSTA_NO + - shared_consts.CallFunz.REGISTRATION) { + } else if (data.action === InlineConferma.RISPOSTA_NO + shared_consts.CallFunz.REGISTRATION) { await myclTelegram.setCmdToUsername(rec, data.username, Cmd.VALIDATE_REGISTRATION, false); - const msgOrig = printf( - getstr(userDest.lang, 'MSG_APORTADOR_DEST_NOT_CONFIRMED'), - `${userDest.name + ' ' + userDest.surname}`); - const msgDest = printf( - getstr(user.lang, 'MSG_APORTADOR_NOT_CONFIRMED'), - `${user.name + ' ' + user.surname}`); + const nomeDest = tools.getNomeCognomeEUserNameByUser(userDest); + const nomestr = tools.getNomeCognomeEUserNameByUser(user); + + const msgOrig = printf(getstr(userDest.lang, 'MSG_APORTADOR_DEST_NOT_CONFIRMED', nomeDest)); + const msgDest = printf(getstr(user.lang, 'MSG_APORTADOR_NOT_CONFIRMED'),nomestr); await local_sendMsgTelegram(user.idapp, data.username, msgOrig); await local_sendMsgTelegram(user.idapp, data.userDest, msgDest); diff --git a/src/server/tools/general.js b/src/server/tools/general.js index bfe3ada..70d0f1b 100755 --- a/src/server/tools/general.js +++ b/src/server/tools/general.js @@ -820,14 +820,15 @@ module.exports = { let actions = []; if (cmd) { if (cmd === shared_consts.FRIENDSCMD.REQFRIEND) { - descr = printf(this.get__('RICHIESTA_AMICIZIA', lang) , username); + descr = printf(this.get__('RICHIESTA_AMICIZIA', lang), username); openUrl = '/my/' + username; tag = 'reqfriends'; } } if (userId) { - this.sendNotificationToUser(userId, title, descr, openUrl, '', tag, actions); + this.sendNotificationToUser(userId, title, descr, openUrl, '', tag, + actions); } if (telegram) { @@ -845,7 +846,8 @@ module.exports = { var {User} = require('../models/user'); var {MyGroup} = require('../models/mygroup'); - const group = await MyGroup.findOne({idapp, groupname}, {_id: 1, admins: 1}); + const group = await MyGroup.findOne({idapp, groupname}, + {_id: 1, admins: 1}); if (!group) return; @@ -891,13 +893,15 @@ module.exports = { if (telegram) { const telegrambot = require('../telegram/telegrambot'); - const idtelegram = await User.TelegIdByUsername(idapp, arradmins.username); + const idtelegram = await User.TelegIdByUsername(idapp, + arradmins.username); - await telegrambot.sendMsgTelegramByIdTelegram(idapp, idtelegram, descr); + await telegrambot.sendMsgTelegramByIdTelegram(idapp, idtelegram, + descr); } } } - }catch (e){ + } catch (e) { console.error('sendNotificationByGroupname', e); } } @@ -1360,7 +1364,11 @@ module.exports = { if (myfilter['userId']) { myfilter['userId'] = ObjectID(myfilter['userId']); } - filtriadded.push(myfilter); + if (myfilter['_idOBJ']) { + filtriadded.push({_id: ObjectID(myfilter['_idOBJ'])}); + } else { + filtriadded.push(myfilter); + } } } @@ -1399,13 +1407,81 @@ module.exports = { if (numrowend < 0) numrowend = 1; + if (params.querytype === shared_consts.QUERYTYPE_MYGROUP) { + // query.push({'$addFields': {'myid': {'$toObjectId': params.myid}}}); + /*query.push({ + $match: { + $and: [ + {idapp}, + {'_id': '$myid'}, + ], + }, + }); + + */ + query.push({ + $match: { + $expr: { + $eq: [ + '$_id', + { + '$toObjectId': params.myid, + }, + ], + }, + }, + }); + query.push({$project: {req_users: 1}}); + const qa1 = this.getLookup( + { + lk_tab: 'users', + lk_LF: 'req_users.username', + lk_FF: 'username', + lk_as: 'user', + }, 0, { + 'user.idapp': 1, + 'user.username': 1, + 'user.profile.img': 1, + 'user.profile.qualifica': 1, + }); + if (qa1) query = [...query, ...qa1]; + query.push({$unwind: '$user'}); + query.push({ + $match: { + $and: [ + {'user.idapp': idapp}, + ], + }, + }); + + query.push({ + $replaceRoot: { + newRoot: '$user', + }, + }, + ); + + } + if (newvers) { // NUOVA VERSIONE let proj = params.lookup2 ? params.lookup2.lk_proj : null; + if (params.proj0) { + query.push({$project: params.proj0}); + } + + if (params.unwind0) { + query.push({$unwind: params.unwind0}); + } + const q1 = this.getLookup(params.lookup1, 1, proj); if (q1) query = [...query, ...q1]; + if (params.unwind1) { + query.push({$unwind: params.unwind1}); + } + const q2 = this.getLookup(params.lookup2, 2, proj); if (q2) query = [...query, ...q2]; @@ -2116,7 +2192,7 @@ module.exports = { }, isFileExists(filename) { - return fs.existsSync(filename) + return fs.existsSync(filename); }, getiPAddressUser(req) { @@ -2243,7 +2319,7 @@ module.exports = { }, blockwords(mystr) { - const arrwords = ['http', 'Http', 'Asasfasfas', '://', 'mrbit']; + const arrwords = ['http', 'Http', 'Asasfasfas', '://', 'mrbit', 'admin', 'info', 'superuser']; for (const myword of arrwords) { if (mystr.includes(myword)) { return true; @@ -2360,4 +2436,13 @@ module.exports = { return count; }, + getNomeCognomeEUserNameByUser(user) { + let nome = `${user.name} ${user.surname} (${user.username})` + if (!user.name) { + nome = user.username; + } + + return nome; + }, + }; diff --git a/src/server/tools/shared_nodejs.js b/src/server/tools/shared_nodejs.js index d0d338a..7687c6f 100755 --- a/src/server/tools/shared_nodejs.js +++ b/src/server/tools/shared_nodejs.js @@ -4,6 +4,8 @@ module.exports = { CHECK_SEE_VIDEO_PRINCIPI: 2, }, + QUERYTYPE_MYGROUP: 1, + ALL_SAW_AND_ACCEPTED: 3, // ---------------------