- pagine admin: Accounts, Movements e Circuits.
- add change min e max range circuiti (per tutti i record).
This commit is contained in:
@@ -100,6 +100,9 @@ AccountSchema.pre('save', async function (next) {
|
|||||||
AccountSchema.statics.getFieldsForSearch = function () {
|
AccountSchema.statics.getFieldsForSearch = function () {
|
||||||
return [
|
return [
|
||||||
{ field: 'name', type: tools.FieldType.string },
|
{ field: 'name', type: tools.FieldType.string },
|
||||||
|
{ field: 'username', type: tools.FieldType.string },
|
||||||
|
{ field: 'groupname', type: tools.FieldType.string },
|
||||||
|
{ field: 'contocom', type: tools.FieldType.string },
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -423,7 +426,51 @@ AccountSchema.statics.getGroupAccounts = async function (idapp, groupname) {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Aggiungi agli Admin del Account
|
// Imposta a tutti i Conti Collettivi, i seguenti minimi e massimi
|
||||||
|
AccountSchema.statics.SetMinMaxCollettivi = async function (idapp, valmin, valmax) {
|
||||||
|
const Account = this;
|
||||||
|
|
||||||
|
ris = await Account.updateMany({ idapp, groupname: { "$nin": [null, ""] } },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{
|
||||||
|
fidoConcesso: valmin,
|
||||||
|
qta_maxConcessa: valmax,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Imposta a tutti i Conti Comunitari, i seguenti minimi e massimi
|
||||||
|
AccountSchema.statics.SetMinMaxComunitari = async function (idapp, valmin, valmax) {
|
||||||
|
const Account = this;
|
||||||
|
|
||||||
|
ris = await Account.updateMany({ idapp, contocom: { "$nin": [null, ""] } },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{
|
||||||
|
fidoConcesso: valmin,
|
||||||
|
qta_maxConcessa: valmax,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Imposta a tutti i Conti Personali, i seguenti minimi e massimi
|
||||||
|
AccountSchema.statics.SetMinMaxPersonali = async function (idapp, valmin, valmax) {
|
||||||
|
const Account = this;
|
||||||
|
|
||||||
|
ris = await Account.updateMany({ idapp, username: { "$nin": [null, ""] } },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{
|
||||||
|
fidoConcesso: valmin,
|
||||||
|
qta_maxConcessa: valmax,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
AccountSchema.statics.addToPeopleOfMyAccount = async function (idapp, username, circuitId, person_username, perm) {
|
AccountSchema.statics.addToPeopleOfMyAccount = async function (idapp, username, circuitId, person_username, perm) {
|
||||||
|
|
||||||
return await Account.updateOne({ idapp, username, circuitId },
|
return await Account.updateOne({ idapp, username, circuitId },
|
||||||
|
|||||||
@@ -232,8 +232,9 @@ CircuitSchema.statics.findAllIdApp = async function (idapp) {
|
|||||||
|
|
||||||
CircuitSchema.statics.getFieldsForSearch = function () {
|
CircuitSchema.statics.getFieldsForSearch = function () {
|
||||||
return [
|
return [
|
||||||
{ field: 'nome_circuito', type: tools.FieldType.string },
|
{ field: 'name', type: tools.FieldType.string },
|
||||||
{ field: 'sotto_nome', type: tools.FieldType.string },
|
{ field: 'subname', type: tools.FieldType.string },
|
||||||
|
{ field: 'path', type: tools.FieldType.string },
|
||||||
{ field: 'nome_valuta', type: tools.FieldType.string },
|
{ field: 'nome_valuta', type: tools.FieldType.string },
|
||||||
{ field: 'descr', type: tools.FieldType.string },
|
{ field: 'descr', type: tools.FieldType.string },
|
||||||
];
|
];
|
||||||
@@ -683,16 +684,24 @@ CircuitSchema.statics.sendCoins = async function (onlycheck, idapp, usernameOrig
|
|||||||
};
|
};
|
||||||
await Circuit.updateOne({ _id: circuittable }, { $set: paramstoupdate });
|
await Circuit.updateOne({ _id: circuittable }, { $set: paramstoupdate });
|
||||||
|
|
||||||
ris.result = true;
|
|
||||||
console.log('Inviate Monete da', usernameOrig, extrarec.grouporig, extrarec.dest, extrarec.groupdest, myqty, extrarec.causal);
|
|
||||||
|
|
||||||
ris.useraccounts = await Account.getUserAccounts(idapp, usernameOrig);
|
|
||||||
|
|
||||||
extrarec.saldoOrig = accountorigTable.saldo;
|
extrarec.saldoOrig = accountorigTable.saldo;
|
||||||
extrarec.saldoDest = accountdestTable.saldo;
|
extrarec.saldoDest = accountdestTable.saldo;
|
||||||
|
|
||||||
|
let orig = usernameOrig + ' ' + extrarec.grouporig + ' ' + extrarec.contoComOrig;
|
||||||
|
let dest = extrarec.dest + ' ' + extrarec.groupDest + ' ' + extrarec.contoComDest;
|
||||||
|
|
||||||
|
ris.result = true;
|
||||||
|
let msg = 'Inviate Monete da ' + orig + ' a ' + dest + ' ' + myqty + ' ' + totCircolante.symbol + ' [' + extrarec.causal + '] [Saldo 1: ' + extrarec.saldoOrig + '] ' + ' [Saldo 2: ' + extrarec.saldoDest + ']';
|
||||||
|
console.log(msg);
|
||||||
|
|
||||||
|
ris.useraccounts = await Account.getUserAccounts(idapp, usernameOrig);
|
||||||
|
|
||||||
|
tools.writeTransactionLog(msg);
|
||||||
|
|
||||||
|
tools.sendMsgTelegramToAdmin(idapp, msg);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.log('NON Inviate Monete da', usernameOrig, extrarec.grouporig, extrarec.dest, extrarec.groupdest, myqty, extrarec.causal);
|
// console.log('NON Inviate Monete da', usernameOrig, extrarec.grouporig, extrarec.dest, extrarec.groupdest, myqty, extrarec.causal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -795,21 +804,79 @@ CircuitSchema.statics.setDeperimentoOff = async function () {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
CircuitSchema.statics.getNameByCircuitId = async function (circuitId) {
|
||||||
|
|
||||||
|
let circuit = await Circuit.findOne({ _id: circuitId });
|
||||||
|
if (circuit)
|
||||||
|
return circuit.name;
|
||||||
|
|
||||||
|
return '';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
CircuitSchema.statics.getCircuitByCircuitId = async function (circuitId) {
|
||||||
|
|
||||||
|
return await Circuit.findOne({ _id: circuitId });
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
CircuitSchema.statics.getListAdminsByCircuitPath = async function (idapp, circuitPath) {
|
CircuitSchema.statics.getListAdminsByCircuitPath = async function (idapp, circuitPath) {
|
||||||
|
|
||||||
let arr = await Circuit.findOne({
|
let arr = await Circuit.findOne({
|
||||||
idapp,
|
idapp,
|
||||||
path: circuitPath,
|
path: circuitPath,
|
||||||
$or: [
|
$or: [
|
||||||
{ deleted: { $exists: false } },
|
{ deleted: { $exists: false } },
|
||||||
{ deleted: { $exists: true, $eq: false } }],
|
{ deleted: { $exists: true, $eq: false } }],
|
||||||
}, {admins: 1}).lean();
|
}, { admins: 1 }).lean();
|
||||||
|
|
||||||
return arr && arr.admins ? arr.admins : [];
|
return arr && arr.admins ? arr.admins : [];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Imposta a tutti i Conti Collettivi, i seguenti minimi e massimi
|
||||||
|
CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, valmax) {
|
||||||
|
|
||||||
|
ris = await Circuit.updateMany({ idapp, contocom: { "$nin": [null, ""] } },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{
|
||||||
|
fido_scoperto_default: valmin,
|
||||||
|
qta_max_default: valmax,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Imposta a tutti i Conti Personali, i seguenti minimi e massimi
|
||||||
|
CircuitSchema.statics.SetDefMinMaxPersonali = async function (idapp, valmin, valmax) {
|
||||||
|
|
||||||
|
ris = await Circuit.updateMany({ idapp },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{
|
||||||
|
fido_scoperto_default: valmin,
|
||||||
|
qta_max_default: valmax,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
// Imposta a tutti i Conti Collettivi, i seguenti minimi e massimi
|
||||||
|
CircuitSchema.statics.SetDefMinMaxCollettivi = async function (idapp, valmin, valmax) {
|
||||||
|
|
||||||
|
ris = await Circuit.updateMany({ idapp },
|
||||||
|
{
|
||||||
|
$set:
|
||||||
|
{
|
||||||
|
fido_scoperto_default_grp: valmin,
|
||||||
|
qta_max_default_grp: valmax,
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
const Circuit = mongoose.model('Circuit', CircuitSchema);
|
const Circuit = mongoose.model('Circuit', CircuitSchema);
|
||||||
|
|
||||||
module.exports = { Circuit };
|
module.exports = { Circuit };
|
||||||
|
|||||||
54
src/server/router/accounts_router.js
Executable file
54
src/server/router/accounts_router.js
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
const tools = require('../tools/general');
|
||||||
|
|
||||||
|
const server_constants = require('../tools/server_constants');
|
||||||
|
|
||||||
|
const { authenticate } = require('../middleware/authenticate');
|
||||||
|
|
||||||
|
const mongoose = require('mongoose').set('debug', false);
|
||||||
|
|
||||||
|
const { User } = require('../models/user');
|
||||||
|
const { Circuit } = require('../models/circuit');
|
||||||
|
const { Account } = require('../models/account');
|
||||||
|
|
||||||
|
const _ = require('lodash');
|
||||||
|
|
||||||
|
const { ObjectID } = require('mongodb');
|
||||||
|
|
||||||
|
async function getCircuitRecAdminsInfo(idapp, data) {
|
||||||
|
|
||||||
|
if (data && data.admins) {
|
||||||
|
for (const admin of data.admins) {
|
||||||
|
const myuser = await User.findOne({ idapp, username: admin.username }, { 'profile.img': 1 }).lean();
|
||||||
|
admin.profile = { img: myuser.profile.img };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
router.post('/loadall', authenticate, async (req, res) => {
|
||||||
|
const idapp = req.body.idapp;
|
||||||
|
|
||||||
|
try {
|
||||||
|
let listaccounts = []
|
||||||
|
if (User.isAdmin(req.user.perm)) {
|
||||||
|
|
||||||
|
listaccounts = await Account.find({ idapp }).lean();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
res.send({ listaccounts });
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
console.error('Error in Accounts', e);
|
||||||
|
return res.status(400).send(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
const ris = null;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
||||||
@@ -866,7 +866,10 @@ router.patch('/chval', authenticate, async (req, res) => {
|
|||||||
|
|
||||||
if (mydata.table === 'accounts') {
|
if (mydata.table === 'accounts') {
|
||||||
if ('saldo' in fieldsvalue) {
|
if ('saldo' in fieldsvalue) {
|
||||||
msg = 'l\'utente ' + req.user.username + ' ha variato il Saldo di ' + rec.username + ' a ' + fieldsvalue.saldo;
|
let circuito = '';
|
||||||
|
if (rec.circuitId)
|
||||||
|
circuit = await Circuit.getCircuitByCircuitId(rec.circuitId);
|
||||||
|
msg = '[' + circuit.name + '] l\'utente ' + req.user.username + ' ha variato il Saldo di ' + rec.username + ' a ' + fieldsvalue.saldo + ' ' + circuit.symbol;
|
||||||
telegrambot.sendMsgTelegramToTheManagers(idapp, msg);
|
telegrambot.sendMsgTelegramToTheManagers(idapp, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1091,6 +1091,26 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
|||||||
|
|
||||||
ris = populate.rewriteTable('contribtypes');
|
ris = populate.rewriteTable('contribtypes');
|
||||||
|
|
||||||
|
} else if (mydata.dbop === 'ImpostaMinMaxPersonali') {
|
||||||
|
|
||||||
|
await Account.SetMinMaxPersonali(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
|
||||||
|
} else if (mydata.dbop === 'ImpostaMinMaxComunitari') {
|
||||||
|
|
||||||
|
await Account.SetMinMaxComunitari(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
|
||||||
|
} else if (mydata.dbop === 'ImpostaMinMaxCollettivi') {
|
||||||
|
|
||||||
|
await Account.SetMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
|
||||||
|
} else if (mydata.dbop === 'ImpostaDefMinMaxPersonali') {
|
||||||
|
|
||||||
|
await Circuit.SetDefMinMaxPersonali(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
|
||||||
|
} else if (mydata.dbop === 'ImpostaDefMinMaxCollettivi') {
|
||||||
|
|
||||||
|
await Circuit.SetDefMinMaxCollettivi(idapp, mydata.valmin, mydata.valmax);
|
||||||
|
|
||||||
} else if (mydata.dbop === 'CreateAccountCircuits') {
|
} else if (mydata.dbop === 'CreateAccountCircuits') {
|
||||||
|
|
||||||
const allcirc = await Circuit.find({ idapp });
|
const allcirc = await Circuit.find({ idapp });
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ myLoad().then(ris => {
|
|||||||
const users_router = require('./router/users_router');
|
const users_router = require('./router/users_router');
|
||||||
const mygroups_router = require('./router/mygroups_router');
|
const mygroups_router = require('./router/mygroups_router');
|
||||||
const circuits_router = require('./router/circuits_router');
|
const circuits_router = require('./router/circuits_router');
|
||||||
|
const accounts_router = require('./router/accounts_router');
|
||||||
const iscrittiConacreis_router = require('./router/iscrittiConacreis_router');
|
const iscrittiConacreis_router = require('./router/iscrittiConacreis_router');
|
||||||
const iscrittiArcadei_router = require('./router/iscrittiArcadei_router');
|
const iscrittiArcadei_router = require('./router/iscrittiArcadei_router');
|
||||||
const site_router = require('./router/site_router');
|
const site_router = require('./router/site_router');
|
||||||
@@ -186,6 +187,7 @@ myLoad().then(ris => {
|
|||||||
app.use('/users', users_router);
|
app.use('/users', users_router);
|
||||||
app.use('/mygroup', mygroups_router);
|
app.use('/mygroup', mygroups_router);
|
||||||
app.use('/circuit', circuits_router);
|
app.use('/circuit', circuits_router);
|
||||||
|
app.use('/account', accounts_router);
|
||||||
app.use('/iscritti_conacreis', iscrittiConacreis_router);
|
app.use('/iscritti_conacreis', iscrittiConacreis_router);
|
||||||
app.use('/iscritti_arcadei', iscrittiArcadei_router);
|
app.use('/iscritti_arcadei', iscrittiArcadei_router);
|
||||||
app.use('/report', report_router);
|
app.use('/report', report_router);
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ const i18n = require('i18n');
|
|||||||
const FILELOG = 'filelog.txt';
|
const FILELOG = 'filelog.txt';
|
||||||
const FILEEVENTS = 'logevents.txt';
|
const FILEEVENTS = 'logevents.txt';
|
||||||
const FILEMANAGERS = 'logmanagers.txt';
|
const FILEMANAGERS = 'logmanagers.txt';
|
||||||
|
const FILETRANSACTION = 'logtrans.txt';
|
||||||
const FILEERRLOGIN = 'errlogin.txt';
|
const FILEERRLOGIN = 'errlogin.txt';
|
||||||
const FILESOSTITUZIONI = 'log_sostituzioni.txt';
|
const FILESOSTITUZIONI = 'log_sostituzioni.txt';
|
||||||
const FILEIP_TO_BAN = 'log_iptoban.txt';
|
const FILEIP_TO_BAN = 'log_iptoban.txt';
|
||||||
@@ -948,6 +949,15 @@ module.exports = {
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
sendMsgTelegramToAdmin: async function (idapp, msg) {
|
||||||
|
|
||||||
|
const telegrambot = require('../telegram/telegrambot');
|
||||||
|
|
||||||
|
const idtelegram = telegrambot.ADMIN_IDTELEGRAM_SERVER;
|
||||||
|
|
||||||
|
await telegrambot.sendMsgTelegramByIdTelegram(idapp, idtelegram, msg);
|
||||||
|
},
|
||||||
|
|
||||||
sendNotifAndMsgTelegram: async function (idapp, userId, objmsg, telegram, msgextrateleg) {
|
sendNotifAndMsgTelegram: async function (idapp, userId, objmsg, telegram, msgextrateleg) {
|
||||||
|
|
||||||
if (userId) {
|
if (userId) {
|
||||||
@@ -2950,6 +2960,9 @@ module.exports = {
|
|||||||
writeManagersLog(mystr) {
|
writeManagersLog(mystr) {
|
||||||
this.writelogfile(mystr, FILEMANAGERS);
|
this.writelogfile(mystr, FILEMANAGERS);
|
||||||
},
|
},
|
||||||
|
writeTransactionLog(mystr) {
|
||||||
|
this.writelogfile(mystr, FILETRANSACTION);
|
||||||
|
},
|
||||||
writeErrorLog(mystr) {
|
writeErrorLog(mystr) {
|
||||||
this.writelogfile(mystr, FILEERRLOGIN);
|
this.writelogfile(mystr, FILEERRLOGIN);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -513,7 +513,7 @@ module.exports = {
|
|||||||
|
|
||||||
CIRCUIT_PARAMS: {
|
CIRCUIT_PARAMS: {
|
||||||
SCOPERTO_MIN_GRP: 200,
|
SCOPERTO_MIN_GRP: 200,
|
||||||
SCOPERTO_MAX_GRP: 500,
|
SCOPERTO_MAX_GRP: 400,
|
||||||
SCOPERTO_MIN_CONTO_COMUNITARIO: 500,
|
SCOPERTO_MIN_CONTO_COMUNITARIO: 500,
|
||||||
SCOPERTO_MAX_CONTO_COMUNITARIO: 1000,
|
SCOPERTO_MAX_CONTO_COMUNITARIO: 1000,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user