- sono uscito da tutti i circuiti che sono a zero e anche admin.

This commit is contained in:
Surya Paolo
2025-01-15 16:48:31 +01:00
parent 332b8992a9
commit b56e25d1fa
3 changed files with 46 additions and 3 deletions

View File

@@ -1398,6 +1398,11 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
if (User.isAdmin(req.user.perm)) {
ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username);
}
} else if (mydata.dbop === 'ExitFromAllCircuitWithZero') {
if (User.isAdmin(req.user.perm)) {
ris = globalTables.ExitFromAllCircuitWithZero(req.body.idapp, mydata.search_username);
}
} else if (mydata.dbop === 'replaceAportadorSolidario') {
if (User.isAdmin(req.user.perm)) {

View File

@@ -1435,7 +1435,7 @@ module.exports = {
getAdminsByCircuit(circuit) {
// return circuit.admins
return [...circuit.admins, shared_consts.USER_ADMIN_CIRCUITS]
return [...circuit.admins, { username: shared_consts.USER_ADMIN_CIRCUITS }]
},
sendNotificationByCircuit: async function (idapp, usernameOrig, circuitname, cmd, value, telegram, username_action, extrarec) {
@@ -1515,7 +1515,7 @@ module.exports = {
const groupOrig = '' //++Todo: extrarec.groupOrig
for (const singleadmin of this.getAdminsByCircuit(circuit) {
for (const singleadmin of this.getAdminsByCircuit(circuit)) {
try {
if (singleadmin.username) {
if (usernameOrig === singleadmin.username)

View File

@@ -953,7 +953,45 @@ module.exports = {
res.status(408).send({});
}
}
},
async removeAdminIfZeroBalance(idapp, username) {
try {
// Trova l'account con saldo_pend a zero
const accountarr = await Account.find({ idapp, username: username, saldo_pend: 0 }).lean();
if (accountarr) {
for (const recaccount of accountarr) {
// Rimuovi l'username dalla lista degli admins nel Circuit
const ris = await Circuit.findOneAndUpdate(
{ _id: recaccount.circuitId },
{ $pull: { admins: { username: username } } }, // Rimuove l'username dalla lista degli admins
{ new: true } // Opzione per restituire il documento aggiornato
);
const nomecircuito = ris.name;
// Esco anche dal Circuito personale:
await User.findOneAndUpdate(
{ idapp, username },
{ $pull: { 'profile.mycircuits': { circuitname: nomecircuito } } }
);
if (ris)
console.log(`L'username ${username} è stato rimosso dagli admins di ` + nomecircuito);
}
} else {
console.log(`Nessun account trovato con saldo_pend a zero per l'username: ${username}.`);
}
} catch (error) {
console.error('Errore durante l\'operazione:', error);
}
},
async ExitFromAllCircuitWithZero(idapp, username) {
return await this.removeAdminIfZeroBalance(idapp, username);
},
};