- varie sistemazioni: filtri iscritti, profilo, ecc...
This commit is contained in:
@@ -745,7 +745,7 @@ sendNotifSchema.statics.saveAndSendNotif = async function (myrecnotif, req, res,
|
|||||||
// console.log('myrecread._id', myrecread._id.toString());
|
// console.log('myrecread._id', myrecread._id.toString());
|
||||||
|
|
||||||
if (myrecread)
|
if (myrecread)
|
||||||
risnotif = await globalTables.sendNotif(myrecread.typedir, myrecread.typeid, res, idapp, user ? user : req.user, myrecread);
|
risnotif = await globalTables.sendNotifCmd(myrecread.typedir, myrecread.typeid, res, idapp, user ? user : req.user, myrecread);
|
||||||
else
|
else
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -756,7 +756,7 @@ sendNotifSchema.statics.saveAndSendNotif = async function (myrecnotif, req, res,
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
risnotif = await globalTables.sendNotif(myrecout.typedir, myrecout.typeid, res, idapp, user ? user : req.user, myrecout);
|
risnotif = await globalTables.sendNotifCmd(myrecout.typedir, myrecout.typeid, res, idapp, user ? user : req.user, myrecout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2539,7 +2539,9 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
|
|||||||
const msgOrig = i18n.__({ phrase, locale: user.lang }, usernameOrig);
|
const msgOrig = i18n.__({ phrase, locale: user.lang }, usernameOrig);
|
||||||
|
|
||||||
await telegrambot.sendMsgTelegram(idapp, usernameOrig, msgDest);
|
await telegrambot.sendMsgTelegram(idapp, usernameOrig, msgDest);
|
||||||
await telegrambot.sendMsgTelegram(idapp, usernameDest, msgOrig);
|
if (phrase !== 'HANDSHAKE_SET') {
|
||||||
|
await telegrambot.sendMsgTelegram(idapp, usernameDest, msgOrig);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Notification : ', e);
|
console.error('Notification : ', e);
|
||||||
|
|||||||
@@ -1398,6 +1398,17 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
|||||||
if (User.isAdmin(req.user.perm)) {
|
if (User.isAdmin(req.user.perm)) {
|
||||||
ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username);
|
ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username);
|
||||||
}
|
}
|
||||||
|
} else if (mydata.dbop === 'replaceAportadorSolidario') {
|
||||||
|
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
ris = globalTables.replaceAportadorSolidario(req.body.idapp, mydata.search_username, mydata.replace_username);
|
||||||
|
}
|
||||||
|
} else if (mydata.dbop === 'SearchString') {
|
||||||
|
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
mystr = await globalTables.SearchString(req.body.idapp, mydata.search);
|
||||||
|
}
|
||||||
|
ris = { mystr };
|
||||||
|
|
||||||
} else if (mydata.dbop === 'copyFrom1To14') {
|
} else if (mydata.dbop === 'copyFrom1To14') {
|
||||||
const idapporig = 1;
|
const idapporig = 1;
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ require('../models/subscribers');
|
|||||||
|
|
||||||
const { ObjectId } = require('mongodb');
|
const { ObjectId } = require('mongodb');
|
||||||
|
|
||||||
|
const mongoose = require('mongoose');
|
||||||
|
|
||||||
const { User } = require('../models/user');
|
const { User } = require('../models/user');
|
||||||
const { MyGroup } = require('../models/mygroup');
|
const { MyGroup } = require('../models/mygroup');
|
||||||
const { Booking } = require('../models/booking');
|
const { Booking } = require('../models/booking');
|
||||||
@@ -57,6 +59,7 @@ const { SendMsg } = require('../models/sendmsg');
|
|||||||
const { Permission } = require('../models/permission');
|
const { Permission } = require('../models/permission');
|
||||||
const { MsgTemplate } = require('../models/msg_template');
|
const { MsgTemplate } = require('../models/msg_template');
|
||||||
const { Graduatoria } = require('../models/graduatoria');
|
const { Graduatoria } = require('../models/graduatoria');
|
||||||
|
|
||||||
const Product = require('../models/product');
|
const Product = require('../models/product');
|
||||||
const ProductInfo = require('../models/productInfo');
|
const ProductInfo = require('../models/productInfo');
|
||||||
const Producer = require('../models/producer');
|
const Producer = require('../models/producer');
|
||||||
@@ -267,7 +270,7 @@ module.exports = {
|
|||||||
return process.env.ENABLE_PUSHNOTIFICATION === '1';
|
return process.env.ENABLE_PUSHNOTIFICATION === '1';
|
||||||
},
|
},
|
||||||
|
|
||||||
async sendNotif(typenotif, idnotif, res, idapp, user, recnotif, cmd) {
|
async sendNotifCmd(typenotif, idnotif, res, idapp, user, recnotif, cmd) {
|
||||||
// Controlla nelle impostazioni che tipo di Notifica visualizzare
|
// Controlla nelle impostazioni che tipo di Notifica visualizzare
|
||||||
|
|
||||||
const sendemail = require('../sendemail');
|
const sendemail = require('../sendemail');
|
||||||
@@ -473,9 +476,9 @@ module.exports = {
|
|||||||
if (risult && (risult.text || risult.caption))
|
if (risult && (risult.text || risult.caption))
|
||||||
textsent = (risult.text || risult.caption);
|
textsent = (risult.text || risult.caption);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -518,98 +521,261 @@ module.exports = {
|
|||||||
return await this.SendMsgToParam(idapp, params);
|
return await this.SendMsgToParam(idapp, params);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
SearchString: async function (idapp, searchString) {
|
||||||
|
const db = mongoose.connection.db;
|
||||||
|
let result = '';
|
||||||
|
let resultPrima = '';
|
||||||
|
|
||||||
|
if (!searchString)
|
||||||
|
return '';
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Ottieni tutte le collezioni del database
|
||||||
|
const collections = await db.listCollections().toArray();
|
||||||
|
const collectionNames = collections.map(collection => collection.name);
|
||||||
|
|
||||||
|
for (const collectionName of collectionNames) {
|
||||||
|
// Crea l'indice di testo per la collezione
|
||||||
|
await db.collection(collectionName).createIndex({ "$**": "text" });
|
||||||
|
|
||||||
|
if (collectionName !== 'sendnotifs') {
|
||||||
|
// Cerca nella collezione
|
||||||
|
const found = await db.collection(collectionName).find({
|
||||||
|
$and: [
|
||||||
|
{ idapp: idapp },
|
||||||
|
{ $text: { $search: searchString } },
|
||||||
|
{ 'profile.username_telegram': { $exists: false } }
|
||||||
|
]
|
||||||
|
}).toArray();
|
||||||
|
|
||||||
|
|
||||||
|
if (found.length > 0) {
|
||||||
|
resultPrima += `Risultati trovati nella collezione: ${collectionName} (${found.length} record)\n`;
|
||||||
|
|
||||||
|
result += `Risultati trovati nella collezione: ${collectionName}\n`;
|
||||||
|
for (const record of found) {
|
||||||
|
result += JSON.stringify(record) + '\n';
|
||||||
|
}
|
||||||
|
result += '\n';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result === '') {
|
||||||
|
result = 'La stringa non è stata trovata in nessuna collezione.';
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
result = `Errore durante la ricerca: ${error.message}`;
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultPrima + '\n\n' + result;
|
||||||
|
},
|
||||||
|
|
||||||
|
replaceAportadorSolidario: async function (idapp, search_username, replace_username) {
|
||||||
|
|
||||||
|
console.log('INIZIO replaceAportadorSolidario')
|
||||||
|
|
||||||
|
if (!search_username || !replace_username) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
ris = await User.updateMany({ idapp, aportador_iniziale: search_username },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{ aportador_iniziale: replace_username }
|
||||||
|
});
|
||||||
|
console.log('aportador_iniziale result = ', ris);
|
||||||
|
|
||||||
|
ris = await User.updateMany({ idapp, aportador_solidario: search_username },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{ aportador_solidario: replace_username }
|
||||||
|
});
|
||||||
|
console.log('aportador_solidario result = ', ris);
|
||||||
|
|
||||||
|
},
|
||||||
replaceUsername: async function (idapp, search_username, replace_username) {
|
replaceUsername: async function (idapp, search_username, replace_username) {
|
||||||
|
|
||||||
if (!search_username || !replace_username) {
|
if (!search_username || !replace_username) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const test = false;
|
||||||
|
|
||||||
|
|
||||||
console.log('INIZIO replaceUsername')
|
console.log('INIZIO replaceUsername')
|
||||||
|
|
||||||
try {
|
try {
|
||||||
let ris = null;
|
let ris = null;
|
||||||
console.log('replaceUsername = ', search_username, replace_username);
|
console.log('replaceUsername = ', search_username, replace_username);
|
||||||
|
|
||||||
ris = await User.findOneAndUpdate({ idapp, username: search_username }, { $set: { username: replace_username } });
|
const dir = tools.getdirByIdApp(idapp, true);
|
||||||
console.log('username result = ', ris);
|
|
||||||
|
|
||||||
tools.move(server_constants.DIR_UPLOAD + 'profile/' + search_username, server_constants.DIR_UPLOAD + 'profile/' + replace_username, function callback() {
|
tools.move(dir + server_constants.DIR_UPLOAD + '/profile/' + search_username, dir + server_constants.DIR_UPLOAD + '/profile/' + replace_username, function callback() {
|
||||||
console.log(' ... moved dir', server_constants.DIR_UPLOAD + 'profile/' + search_username, server_constants.DIR_UPLOAD + 'profile/' + replace_username);
|
console.log(' ... moved dir', dir + server_constants.DIR_UPLOAD + '/profile/' + search_username, dir + server_constants.DIR_UPLOAD + '/profile/' + replace_username);
|
||||||
});
|
});
|
||||||
|
|
||||||
ris = await User.findOneAndUpdate({ idapp, 'profile.username_telegram': search_username }, { $set: { 'profile.username_telegram': replace_username } });
|
if (test) {
|
||||||
console.log('profile.username_telegram result = ', ris);
|
// esco...
|
||||||
|
|
||||||
ris = await User.updateMany({ idapp, aportador_iniziale: search_username },
|
} else {
|
||||||
{
|
|
||||||
$set:
|
|
||||||
{ aportador_iniziale: replace_username }
|
|
||||||
});
|
|
||||||
console.log('aportador_iniziale result = ', ris);
|
|
||||||
|
|
||||||
ris = await User.updateMany({ idapp, username_who_report: search_username },
|
ris = await User.findOneAndUpdate({ idapp, username: search_username }, { $set: { username: replace_username } });
|
||||||
{
|
console.log('username result = ', ris);
|
||||||
$set:
|
|
||||||
{ username_who_report: replace_username }
|
|
||||||
});
|
|
||||||
console.log('username_who_report result = ', ris);
|
|
||||||
|
|
||||||
ris = await User.updateMany({ idapp, aportador_solidario: search_username },
|
ris = await User.findOneAndUpdate({ idapp, username: search_username }, { $set: { username: replace_username } });
|
||||||
{
|
console.log('username result = ', ris);
|
||||||
$set:
|
|
||||||
{ aportador_solidario: replace_username }
|
|
||||||
});
|
|
||||||
console.log('aportador_solidario result = ', ris);
|
|
||||||
|
|
||||||
ris = await User.updateMany({ idapp, 'profile.friends.username': search_username },
|
ris = await User.findOneAndUpdate({ idapp, 'profile.username_telegram': search_username }, { $set: { 'profile.username_telegram': replace_username } });
|
||||||
{
|
console.log('profile.username_telegram result = ', ris);
|
||||||
$set:
|
|
||||||
{ 'profile.friends.$.username': replace_username }
|
|
||||||
});
|
|
||||||
console.log('friends.username result = ', ris);
|
|
||||||
|
|
||||||
ris = await User.updateMany({ idapp, 'profile.req_friends.username': search_username },
|
ris = await User.updateMany({ idapp, aportador_iniziale: search_username },
|
||||||
{
|
{
|
||||||
$set:
|
$set:
|
||||||
{ 'profile.req_friends.$.username': replace_username }
|
{ aportador_iniziale: replace_username }
|
||||||
});
|
});
|
||||||
console.log('req_friends.username result = ', ris);
|
console.log('aportador_iniziale result = ', ris);
|
||||||
|
|
||||||
ris = await User.updateMany({ idapp, 'profile.handshake.username': search_username },
|
ris = await User.updateMany({ idapp, username_who_report: search_username },
|
||||||
{
|
{
|
||||||
$set:
|
$set:
|
||||||
{ 'profile.handshake.$.username': replace_username }
|
{ username_who_report: replace_username }
|
||||||
});
|
});
|
||||||
console.log('handshake.username result = ', ris);
|
console.log('username_who_report result = ', ris);
|
||||||
|
|
||||||
ris = await Circuit.updateMany({ idapp, 'admins.username': search_username },
|
ris = await User.updateMany({ idapp, aportador_solidario: search_username },
|
||||||
{ $set: { 'admins.$.username': replace_username } });
|
{
|
||||||
console.log('Circuit.admins.username result = ', ris);
|
$set:
|
||||||
|
{ aportador_solidario: replace_username }
|
||||||
|
});
|
||||||
|
console.log('aportador_solidario result = ', ris);
|
||||||
|
|
||||||
ris = await Circuit.updateMany({ idapp, 'req_users.username': search_username },
|
ris = await User.updateMany({ idapp, 'profile.friends.username': search_username },
|
||||||
{ $set: { 'req_users.$.username': replace_username } });
|
{
|
||||||
console.log('Circuit.req_users.username result = ', ris);
|
$set:
|
||||||
|
{ 'profile.friends.$.username': replace_username }
|
||||||
|
});
|
||||||
|
console.log('friends.username result = ', ris);
|
||||||
|
|
||||||
ris = await Circuit.updateMany({ idapp, 'refused_users.username': search_username },
|
ris = await User.updateMany({ idapp, 'profile.req_friends.username': search_username },
|
||||||
{ $set: { 'refused_users.$.username': replace_username } });
|
{
|
||||||
console.log('Circuit.refused_users.username result = ', ris);
|
$set:
|
||||||
|
{ 'profile.req_friends.$.username': replace_username }
|
||||||
|
});
|
||||||
|
console.log('req_friends.username result = ', ris);
|
||||||
|
|
||||||
ris = await Account.updateMany({ idapp, 'username': search_username },
|
ris = await User.updateMany({ idapp, 'profile.handshake.username': search_username },
|
||||||
{ $set: { 'username': replace_username } });
|
{
|
||||||
console.log('Account.username result = ', ris);
|
$set:
|
||||||
|
{ 'profile.handshake.$.username': replace_username }
|
||||||
|
});
|
||||||
|
console.log('handshake.username result = ', ris);
|
||||||
|
|
||||||
ris = await MyGroup.updateMany({ idapp, 'admins.username': search_username },
|
ris = await Circuit.updateMany({ idapp, 'admins.username': search_username },
|
||||||
{ $set: { 'admins.$.username': replace_username } });
|
{ $set: { 'admins.$.username': replace_username } });
|
||||||
console.log('MyGroup.refused_users.username result = ', ris);
|
console.log('Circuit.admins.username result = ', ris);
|
||||||
|
|
||||||
ris = await MyGroup.updateMany({ idapp, 'req_users.username': search_username },
|
ris = await Circuit.updateMany({ idapp, 'createdBy': search_username },
|
||||||
{ $set: { 'req_users.$.username': replace_username } });
|
{ $set: { 'createdBy': replace_username } });
|
||||||
console.log('MyGroup.req_users.username result = ', ris);
|
console.log('Circuit.createdBy result = ', ris);
|
||||||
|
|
||||||
|
ris = await MyGroup.updateMany({ idapp, 'createdBy': search_username },
|
||||||
|
{ $set: { 'createdBy': replace_username } });
|
||||||
|
console.log('MyGroup.createdBy result = ', ris);
|
||||||
|
|
||||||
|
ris = await MyElem.updateMany(
|
||||||
|
{
|
||||||
|
idapp,
|
||||||
|
$or: [
|
||||||
|
{ 'containerHtml': { $regex: search_username, $options: 'i' } },
|
||||||
|
{ 'link': { $regex: search_username, $options: 'i' } }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
[
|
||||||
|
{
|
||||||
|
$set: {
|
||||||
|
containerHtml: {
|
||||||
|
$replaceAll: {
|
||||||
|
input: "$containerHtml",
|
||||||
|
find: search_username,
|
||||||
|
replacement: replace_username
|
||||||
|
}
|
||||||
|
},
|
||||||
|
link: {
|
||||||
|
$replaceAll: {
|
||||||
|
input: "$link",
|
||||||
|
find: search_username,
|
||||||
|
replacement: replace_username
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log('MyElem.containerHtml result = ', ris);
|
||||||
|
|
||||||
|
ris = await Circuit.updateMany({ idapp, 'req_users.username': search_username },
|
||||||
|
{ $set: { 'req_users.$.username': replace_username } });
|
||||||
|
console.log('Circuit.req_users.username result = ', ris);
|
||||||
|
|
||||||
|
ris = await Circuit.updateMany({ idapp, 'refused_users.username': search_username },
|
||||||
|
{ $set: { 'refused_users.$.username': replace_username } });
|
||||||
|
console.log('Circuit.refused_users.username result = ', ris);
|
||||||
|
|
||||||
|
ris = await Account.updateMany({ idapp, 'username': search_username },
|
||||||
|
{ $set: { 'username': replace_username } });
|
||||||
|
console.log('Account.username result = ', ris);
|
||||||
|
|
||||||
|
ris = await MyGroup.updateMany({ idapp, 'admins.username': search_username },
|
||||||
|
{ $set: { 'admins.$.username': replace_username } });
|
||||||
|
console.log('MyGroup.refused_users.username result = ', ris);
|
||||||
|
|
||||||
|
ris = await MyGroup.updateMany({ idapp, 'req_users.username': search_username },
|
||||||
|
{ $set: { 'req_users.$.username': replace_username } });
|
||||||
|
console.log('MyGroup.req_users.username result = ', ris);
|
||||||
|
|
||||||
|
// MyGroup.refused_users.username
|
||||||
|
ris = await MyGroup.updateMany({ idapp, 'refused_users.username': search_username },
|
||||||
|
{ $set: { 'refused_users.$.username': replace_username } });
|
||||||
|
console.log('MyGroup.refused_users.username result = ', ris);
|
||||||
|
|
||||||
|
const { SendNotif } = require('../models/sendnotif');
|
||||||
|
|
||||||
|
ris = await SendNotif.updateMany({ idapp, 'sender': search_username },
|
||||||
|
{ $set: { 'sender': replace_username } });
|
||||||
|
console.log('SendNotif.sender result = ', ris);
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
ris = await SendNotif.updateMany({ idapp, 'dest': search_username },
|
||||||
|
{ $set: { 'dest': replace_username } });
|
||||||
|
console.log('SendNotif.dest result = ', ris);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
ris = await Reaction.updateMany({ idapp, 'username': search_username },
|
||||||
|
{ $set: { 'username': replace_username } });
|
||||||
|
console.log('Reaction.dest result = ', ris);
|
||||||
|
|
||||||
|
ris = await SendMsg.updateMany({ idapp, 'dest': search_username },
|
||||||
|
{ $set: { 'dest': replace_username } });
|
||||||
|
console.log('SendMsg.dest result = ', ris);
|
||||||
|
|
||||||
|
ris = await SendMsg.updateMany({ idapp, 'origin': search_username },
|
||||||
|
{ $set: { 'origin': replace_username } });
|
||||||
|
console.log('SendMsg.origin result = ', ris);
|
||||||
|
|
||||||
|
|
||||||
|
ris = await Booking.updateMany({ idapp, 'username': search_username },
|
||||||
|
{ $set: { 'username': replace_username } });
|
||||||
|
console.log('Booking.username result = ', ris);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// MyGroup.refused_users.username
|
|
||||||
ris = await MyGroup.updateMany({ idapp, 'refused_users.username': search_username },
|
|
||||||
{ $set: { 'refused_users.$.username': replace_username } });
|
|
||||||
console.log('MyGroup.refused_users.username result = ', ris);
|
|
||||||
|
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ module.exports = {
|
|||||||
FILTER_USER_WITHOUT_USERNAME_TELEGRAM: 8388608,
|
FILTER_USER_WITHOUT_USERNAME_TELEGRAM: 8388608,
|
||||||
FILTER_USER_PROVINCE: 16777216,
|
FILTER_USER_PROVINCE: 16777216,
|
||||||
FILTER_USER_SENZA_PROVINCE: 33554432,
|
FILTER_USER_SENZA_PROVINCE: 33554432,
|
||||||
|
FILTER_USER_SENZA_CIRCUITO: 67108864,
|
||||||
|
|
||||||
OPTIONS_SEARCH_ONLY_FULL_WORDS: 1,
|
OPTIONS_SEARCH_ONLY_FULL_WORDS: 1,
|
||||||
OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2,
|
OPTIONS_SEARCH_USER_ONLY_FULL_WORDS: 2,
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.1.15
|
1.1.16
|
||||||
Reference in New Issue
Block a user