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) {
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
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) {
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
return User.setGroupsCmd(mydata.idapp, req.user.username,
myrec.groupname,
shared_consts.GROUPSCMD.SETGROUP, true).then((ris) => {
shared_consts.GROUPSCMD.SETGROUP, true, req.user.username).then((ris) => {
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) => {
res.send(ris);
}).

View File

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

View File

@@ -124,8 +124,10 @@ const textlang = {
'ZOOM_CONFERMATO': 'Sei stato confermato ad aver visto la Video Conferenza di Benvenuto!',
'RICHIESTA_AMICIZIA': '🌈 Richiesta d\'Amicizia da parte di %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)',
'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',
},
si: {},
@@ -925,9 +927,15 @@ module.exports = {
actions: [],
};
let creazionegruppo = false;
for (const singleadmin of arrusernameAdmins) {
try {
if (singleadmin.username) {
creazionegruppo = arrusernameAdmins.length === 1 && usernameOrig === singleadmin.username && cmd ===
shared_consts.GROUPSCMD.SETGROUP;
const user = await User.findOne({idapp, username: singleadmin.username},
{_id: 1, lang: 1});
if (user) {
@@ -939,7 +947,11 @@ module.exports = {
if (cmd) {
if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
objmsg.descr = printf(this.get__('ACCETTATO_NOTIFICA_ADMINS', lang), usernameOrig, groupname, username_action);
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.openUrl = '/grp/' + groupname;
objmsg.tag = 'addgroups';
@@ -958,11 +970,15 @@ module.exports = {
groupname, singleadmin.username);
objmsg.openUrl = '/grp/' + groupname;
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);
}
@@ -975,10 +991,13 @@ module.exports = {
if (cmd === shared_consts.GROUPSCMD.SETGROUP) {
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.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:
await this.sendNotifAndMsgTelegram(idapp, reclang._id, objmsg, telegram);
}
@@ -1701,12 +1720,46 @@ module.exports = {
};
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.length > 0) {
query.push({$match: {$or: params.filtersearch3or}});

View File

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