go on Conto Comunitario

This commit is contained in:
Surya Paolo
2023-02-01 01:19:50 +01:00
parent 5f3ce44a68
commit 9a0f0a0cc6
6 changed files with 66 additions and 29 deletions

View File

@@ -195,7 +195,7 @@ AccountSchema.pre('save', async function (next) {
next();
});
AccountSchema.statics.getAccountByUsernameAndCircuitId = async function (idapp, username, circuitId, createifnotexist, groupname = '') {
AccountSchema.statics.getAccountByUsernameAndCircuitId = async function (idapp, username, circuitId, createifnotexist, groupname = '', iscontocom = false) {
const Account = this;
try {
@@ -235,19 +235,25 @@ AccountSchema.statics.getAccountByUsernameAndCircuitId = async function (idapp,
qta_maxConcessa: 0,
});
if (!mycircuit.fido_scoperto_default_grp)
mycircuit.fido_scoperto_default_grp = shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_GRP;
if (!mycircuit.qta_max_default_grp)
mycircuit.qta_max_default_grp = shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_GRP;
if (groupname) {
myaccount.fidoConcesso = mycircuit.fido_scoperto_default_grp;
myaccount.qta_maxConcessa = mycircuit.qta_max_default_grp;
if (iscontocom) {
myaccount.fidoConcesso = shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_CONTO_COMUNITARIO;
myaccount.qta_maxConcessa = shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_CONTO_COMUNITARIO;
} else {
myaccount.fidoConcesso = mycircuit.fido_scoperto_default;
myaccount.qta_maxConcessa = mycircuit.qta_max_default;
if (!mycircuit.fido_scoperto_default_grp)
mycircuit.fido_scoperto_default_grp = shared_consts.CIRCUIT_PARAMS.SCOPERTO_MIN_GRP;
if (!mycircuit.qta_max_default_grp)
mycircuit.qta_max_default_grp = shared_consts.CIRCUIT_PARAMS.SCOPERTO_MAX_GRP;
if (groupname) {
myaccount.fidoConcesso = mycircuit.fido_scoperto_default_grp;
myaccount.qta_maxConcessa = mycircuit.qta_max_default_grp;
} else {
myaccount.fidoConcesso = mycircuit.fido_scoperto_default;
myaccount.qta_maxConcessa = mycircuit.qta_max_default;
}
}
return await myaccount.save();
}
@@ -266,9 +272,9 @@ AccountSchema.statics.createAccount = async function (idapp, username, circuitNa
const { Circuit } = require('../models/circuit');
try {
mycircuit = await Circuit.findOne({ name: circuitName }, {_id: 1});
mycircuit = await Circuit.findOne({ name: circuitName }, { _id: 1 });
if (mycircuit) {
return await Account.getAccountByUsernameAndCircuitId(idapp, username, mycircuit._id, true, groupname);
return await Account.getAccountByUsernameAndCircuitId(idapp, username, mycircuit._id, true, groupname, circuitName === groupname);
} else {
return null;
}

View File

@@ -2348,7 +2348,14 @@ UserSchema.statics.setCircuitCmd = async function (idapp, usernameOrig, circuitn
let groupname = extrarec && extrarec.groupname ? extrarec.groupname : '';
try {
if (cmd === shared_consts.CIRCUITCMD.SET) {
if (cmd === shared_consts.CIRCUITCMD.CREATE) {
const mycirc = await Circuit.findOne({ idapp, name: circuitname });
if (mycirc) {
// Il Conto Comunitario prende il nome del circuito !
await Account.createAccount(idapp, '', circuitname, mycirc.path);
}
} else if (cmd === shared_consts.CIRCUITCMD.SET) {
if (groupname) {
const foundIfCircuitInGroup = await MyGroup.ifCircuitAlreadyInGroup(idapp, groupname, circuitname);

View File

@@ -5,23 +5,24 @@ const tools = require('../tools/general');
const server_constants = require('../tools/server_constants');
const {authenticate} = require('../middleware/authenticate');
const { authenticate } = require('../middleware/authenticate');
const mongoose = require('mongoose').set('debug', false);
const {User} = require('../models/user');
const {Circuit} = require('../models/circuit');
const { User } = require('../models/user');
const { Circuit } = require('../models/circuit');
const { Account } = require('../models/account');
const _ = require('lodash');
const {ObjectID} = require('mongodb');
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};
const myuser = await User.findOne({ idapp, username: admin.username }, { 'profile.img': 1 }).lean();
admin.profile = { img: myuser.profile.img };
}
}
@@ -35,15 +36,15 @@ router.post('/load', authenticate, async (req, res) => {
try {
const {SendNotif} = require('../models/sendnotif');
const {Movement} = require('../models/movement');
const { SendNotif } = require('../models/sendnotif');
const { Movement } = require('../models/movement');
// Check if ìs a Notif to read
const idnotif = req.body['idnotif'] ? req.body['idnotif'] : '';
SendNotif.setNotifAsRead(idapp, usernameOrig, idnotif);
const whatshow = Circuit.getWhatToShow(idapp, req.user.username);
let data = await Circuit.findOne({idapp, path}, whatshow).lean();
let data = await Circuit.findOne({ idapp, path }, whatshow).lean();
const whatshowUsers = await User.getWhatToShow_IfFriends(idapp, req.user.username);
@@ -70,7 +71,11 @@ router.post('/load', authenticate, async (req, res) => {
data.movements = await Movement.getMovsByCircuitId(idapp, usernameOrig, data._id);
}
res.send({circuit: data, users_in_circuit});
if (data) {
data.account = await Account.getAccountByUsernameAndCircuitId(idapp, '', data._id, false, data.path);
}
res.send({ circuit: data, users_in_circuit });
} catch (e) {
console.error('Error in Circuits', e);

View File

@@ -469,8 +469,13 @@ router.post('/settable', authenticate, async (req, res) => {
return res.send({ rec: myrec, ris });
});
} else if (params.table === shared_consts.TAB_MYCIRCUITS && isnewrec) {
// nuovo Record:
// aggiungi il creatore al Circuito stesso
// nuovo Circuito:
await User.setCircuitCmd(mydata.idapp, req.user.username, myrec.name,
shared_consts.CIRCUITCMD.CREATE, true, req.user.username, extrarec).then((ris) => {
return res.send({ rec: myrec, ris });
});
// aggiungi il creatore al Circuito stesso
return await User.setCircuitCmd(mydata.idapp, req.user.username, myrec.name,
shared_consts.CIRCUITCMD.SET, true, req.user.username, extrarec).then((ris) => {
return res.send({ rec: myrec, ris });

View File

@@ -38,6 +38,7 @@ const TypedError = require('../modules/ErrorHandler');
const { MyGroup } = require('../models/mygroup');
const { Circuit } = require('../models/circuit');
const { Account } = require('../models/account');
const mongoose = require('mongoose').set('debug', false);
@@ -687,8 +688,8 @@ router.post('/friends/cmd', authenticate, async (req, res) => {
if ((usernameOrig !== usernameLogged) && (
(usernameDest !== usernameLogged) &&
((cmd === shared_consts.FRIENDSCMD.SETFRIEND) ||
(cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE))
(cmd === shared_consts.FRIENDSCMD.SETHANDSHAKE))
)) {
return res.status(404).
send({ code: server_constants.RIS_CODE_ERR_UNAUTHORIZED, msg: '' });
@@ -1090,8 +1091,18 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
ris = populate.rewriteTable('contribtypes');
} else if (mydata.dbop === 'CreateAccountCircuits') {
const allcirc = await Circuit.find({ idapp });
for (const mycirc of allcirc) {
// Il Conto Comunitario prende il nome del circuito !
await Account.createAccount(idapp, '', mycirc.name, mycirc.path);
}
} else if (mydata.dbop === 'ReplaceUsername') {
if (User.isAdmin(req.user.perm)) {
ris = globalTables.replaceUsername(req.body.idapp, mydata.search_username, mydata.replace_username);
}

View File

@@ -72,6 +72,7 @@ module.exports = {
},
CIRCUITCMD: {
CREATE: 1001,
REQ: 2000,
SET: 2001,
REMOVE_FROM_MYLIST: 2144,
@@ -513,6 +514,8 @@ module.exports = {
CIRCUIT_PARAMS: {
SCOPERTO_MIN_GRP: 200,
SCOPERTO_MAX_GRP: 500,
SCOPERTO_MIN_CONTO_COMUNITARIO: 1000,
SCOPERTO_MAX_CONTO_COMUNITARIO: 1000,
},
};