- sono uscito da tutti i circuiti che sono a zero e anche admin.
This commit is contained in:
@@ -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)) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
|
||||
},
|
||||
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user