Nella pagina profilo, i "Gruppi" personali non si vedevano !

Cancellazione di un Gruppo
corretto filtro di visiblità dei Gruppi
This commit is contained in:
Paolo Arena
2022-06-17 12:30:44 +02:00
parent c3b0a1f417
commit c8324f0de4
7 changed files with 82 additions and 8 deletions

View File

@@ -242,6 +242,13 @@ MyGroupSchema.statics.getInfoGroupByGroupname = async function(idapp, groupname)
}; };
MyGroupSchema.statics.deleteGroup = async function(idapp, usernameOrig, groupname) {
console.log('Gruppo ' + groupname + ' rimosso da ' + usernameOrig);
return MyGroup.findOneAndRemove({idapp, groupname});
};
MyGroupSchema.statics.getGroupsByUsername = async function(idapp, username, req) { MyGroupSchema.statics.getGroupsByUsername = async function(idapp, username, req) {
try { try {

View File

@@ -1757,6 +1757,19 @@ UserSchema.statics.setGroupsCmd = async function(idapp, usernameOrig, groupnameD
ris = await User.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me ris = await User.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
console.log('ris', ris); console.log('ris', ris);
} else if (cmd === shared_consts.GROUPSCMD.DELETE_GROUP) {
ris = await User.removeFromMyGroups(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
if (ris) {
// Invia una notifica alla persona e agli Admin
await tools.sendNotificationByGroupname(idapp, usernameOrig, groupnameDest, cmd, true, username_action);
}
ris = await MyGroup.deleteGroup(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me
console.log('ris', ris);
} else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) { } else if (cmd === shared_consts.GROUPSCMD.CANCEL_REQ_GROUP) {
ris = await MyGroup.removeReqGroup(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me ris = await MyGroup.removeReqGroup(idapp, usernameOrig, groupnameDest); // Rimuovo l'Amicizia da me

View File

@@ -333,7 +333,7 @@ router.post('/settable', authenticate, async (req, res) => {
// aggiungi il creatore al gruppo stesso // aggiungi il creatore al gruppo stesso
return User.setGroupsCmd(mydata.idapp, req.user.username, return User.setGroupsCmd(mydata.idapp, req.user.username,
myrec.groupname, myrec.groupname,
shared_consts.GROUPSCMD.SETGROUP, true).then((ris) => { shared_consts.GROUPSCMD.SETGROUP, true, req.user.username).then((ris) => {
return res.send(myrec); return res.send(myrec);
}); });
} }

View File

@@ -609,7 +609,7 @@ router.post('/groups/cmd', authenticate, (req, res) => {
} }
}*/ }*/
return User.setGroupsCmd(idapp, usernameOrig, groupnameDest, cmd, value). return User.setGroupsCmd(idapp, usernameOrig, groupnameDest, cmd, value, usernameLogged).
then((ris) => { then((ris) => {
res.send(ris); res.send(ris);
}). }).

View File

@@ -685,7 +685,7 @@ const txt_pt = {
const TelegramBot = require('node-telegram-bot-api'); const TelegramBot = require('node-telegram-bot-api');
const ADMIN_IDTELEGRAM_TEST = 5022837609; //Perseo const ADMIN_IDTELEGRAM_TEST = 5356627050; // 5022837609; //Perseo
const MyTelegramBot = { const MyTelegramBot = {

View File

@@ -124,8 +124,10 @@ const textlang = {
'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!', 'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!',
'RICHIESTA_AMICIZIA': '🌈 Richiesta d\'Amicizia da parte di %s', 'RICHIESTA_AMICIZIA': '🌈 Richiesta d\'Amicizia da parte di %s',
'ACCETTATO_SUL_GRUPPO': '✅ Sei stato accettato da %s a far parte del Gruppo %s', 'ACCETTATO_SUL_GRUPPO': '✅ Sei stato accettato da %s a far parte del Gruppo %s',
'CREATO_NUOVO_GRUPPO': '✅ Hai appena creato un nuovo Gruppo chiamato %s',
'ACCETTATO_NOTIFICA_ADMINS': '✅ l\'utente %s è stato accettato a far parte del Gruppo %s (da parte di %s)', 'ACCETTATO_NOTIFICA_ADMINS': '✅ l\'utente %s è stato accettato a far parte del Gruppo %s (da parte di %s)',
'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s', 'RICHIESTA_GRUPPO': 'Richiesta di entrare nel Gruppo %s da parte di %s',
'GRUPPO_ELIMINATO': 'Il gruppo %s è stato eliminato da parte di %s',
'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s', 'RICHIESTA_BLOCCO_GRUPPO': 'Richiesta di bloccare il Gruppo %s da parte di %s',
}, },
si: {}, si: {},
@@ -925,9 +927,15 @@ module.exports = {
actions: [], actions: [],
}; };
let creazionegruppo = false;
for (const singleadmin of arrusernameAdmins) { for (const singleadmin of arrusernameAdmins) {
try { try {
if (singleadmin.username) { if (singleadmin.username) {
creazionegruppo = arrusernameAdmins.length === 1 && usernameOrig === singleadmin.username && cmd ===
shared_consts.GROUPSCMD.SETGROUP;
const user = await User.findOne({idapp, username: singleadmin.username}, const user = await User.findOne({idapp, username: singleadmin.username},
{_id: 1, lang: 1}); {_id: 1, lang: 1});
if (user) { if (user) {
@@ -939,7 +947,11 @@ module.exports = {
if (cmd) { if (cmd) {
if (cmd === shared_consts.GROUPSCMD.SETGROUP) { if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
if (creazionegruppo) {
objmsg.descr = printf(this.get__('CREATO_NUOVO_GRUPPO', lang), groupname);
} else {
objmsg.descr = printf(this.get__('ACCETTATO_NOTIFICA_ADMINS', lang), usernameOrig, groupname, username_action); objmsg.descr = printf(this.get__('ACCETTATO_NOTIFICA_ADMINS', lang), usernameOrig, groupname, username_action);
}
objmsg.openUrl = '/grp/' + groupname; objmsg.openUrl = '/grp/' + groupname;
objmsg.tag = 'addgroups'; objmsg.tag = 'addgroups';
@@ -958,11 +970,15 @@ module.exports = {
groupname, singleadmin.username); groupname, singleadmin.username);
objmsg.openUrl = '/grp/' + groupname; objmsg.openUrl = '/grp/' + groupname;
objmsg.tag = 'blockgroups'; objmsg.tag = 'blockgroups';
} else if (cmd === shared_consts.GROUPSCMD.DELETE_GROUP) {
objmsg.descr = printf(this.get__('GRUPPO_ELIMINATO', lang), groupname, username_action);
objmsg.openUrl = '/grp/' + groupname;
objmsg.tag = 'deletegroup';
} }
} }
if (sendnotif && objmsg.descr) { if (sendnotif && objmsg.descr && !creazionegruppo) {
await this.sendNotifAndMsgTelegram(idapp, userId, objmsg, telegram, struserinfomsg); await this.sendNotifAndMsgTelegram(idapp, userId, objmsg, telegram, struserinfomsg);
} }
@@ -975,10 +991,13 @@ module.exports = {
if (cmd === shared_consts.GROUPSCMD.SETGROUP) { if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
const reclang = await User.getRecLangAndIdByUsername(idapp, usernameOrig); const reclang = await User.getRecLangAndIdByUsername(idapp, usernameOrig);
objmsg.descr = printf(this.get__('ACCETTATO_SUL_GRUPPO', reclang.lang), username_action, groupname);
objmsg.openUrl = '/grp/' + groupname; objmsg.openUrl = '/grp/' + groupname;
objmsg.tag = 'addgroups'; objmsg.tag = 'addgroups';
if (creazionegruppo) {
objmsg.descr = printf(this.get__('CREATO_NUOVO_GRUPPO', reclang.lang), groupname);
} else {
objmsg.descr = printf(this.get__('ACCETTATO_SUL_GRUPPO', reclang.lang), username_action, groupname);
}
// Send to User: // Send to User:
await this.sendNotifAndMsgTelegram(idapp, reclang._id, objmsg, telegram); await this.sendNotifAndMsgTelegram(idapp, reclang._id, objmsg, telegram);
} }
@@ -1701,12 +1720,46 @@ module.exports = {
}; };
query.push({$match: {$and: [condition]}}); query.push({$match: {$and: [condition]}});
} else if (shared_consts.TABLES_ENABLE_GETREC_BYID.includes(params.table)) {
// Rimuovi dalla query quelli non visibili
let arraygroups = [];
if (user && user.profile.mygroups) {
arraygroups = user.profile.mygroups.map(rec => rec.groupname);
}
// prendere i gruppi dell'utente
// Cerca tra i gruppi di ogni record, se combaciano almeno 1
condition = {
'profile.mygroups':
{
$elemMatch: {
groupname: {$in: arraygroups},
},
},
};
query.push(
{
$match:
{
$or: [
{
$and: [condition, {pub_to_share: 1}],
},
{$or: [{pub_to_share: {$exists: false}}, {pub_to_share: {$exists: true, $eq: shared_consts.PUBTOSHARE.ALL}}]},
],
},
},
);
} }
} }
} }
if (params.filtersearch3or) { if (params.filtersearch3or) {
if (params.filtersearch3or.length > 0) { if (params.filtersearch3or.length > 0) {
query.push({$match: {$or: params.filtersearch3or}}); query.push({$match: {$or: params.filtersearch3or}});

View File

@@ -58,6 +58,7 @@ module.exports = {
CANCEL_REQ_GROUP: 1146, CANCEL_REQ_GROUP: 1146,
BLOCK_GROUP: 1155, BLOCK_GROUP: 1155,
FIND_GROUP: 1166, FIND_GROUP: 1166,
DELETE_GROUP: 1170,
}, },
REPORT_FILT_RESP: 1, REPORT_FILT_RESP: 1,