- newsletter: prende la lista utenti (flag news_on)
- Abilita a Tutti la Newsletter news_on - isCommerciale - JobsInProgress - PCB: Corretto Totali che era a zero
This commit is contained in:
@@ -354,13 +354,14 @@ router.post('/settable', authenticate, async (req, res) => {
|
||||
|
||||
try {
|
||||
if (User.isAdmin(req.user.perm) || User.isManager(req.user.perm) ||
|
||||
User.isEditor(req.user.perm) || User.isFacilitatore(req.user.perm)) {
|
||||
User.isEditor(req.user.perm) || User.isCommerciale(req.user.perm) || User.isFacilitatore(req.user.perm)) {
|
||||
consentito = true;
|
||||
}
|
||||
|
||||
if ((!User.isAdmin(req.user.perm)
|
||||
&& !User.isManager(req.user.perm)
|
||||
&& !User.isEditor(req.user.perm)
|
||||
&& !User.isCommerciale(req.user.perm)
|
||||
&& !User.isGrafico(req.user.perm)
|
||||
&& !User.isFacilitatore(req.user.perm))
|
||||
&&
|
||||
@@ -1065,7 +1066,7 @@ async function importPage(req, idapp, jsonString) {
|
||||
const table = globalTables.getTableByTableName(tableName);
|
||||
|
||||
if (tableName === 'mypages') {
|
||||
if (User.isEditor(req.user.perm)) {
|
||||
if (User.isEditor(req.user.perm) || User.isCommerciale(req.user.perm)) {
|
||||
for (const page of myexp.mypages) {
|
||||
const { ImportedRecords, newId } = await upsertRecord(table, page, idapp);
|
||||
if (!newIdPage && newId) {
|
||||
@@ -1095,7 +1096,7 @@ async function importPage(req, idapp, jsonString) {
|
||||
const table = globalTables.getTableByTableName(tableName);
|
||||
|
||||
if (tableName === 'myelems') {
|
||||
if (User.isEditor(req.user.perm)) {
|
||||
if (User.isEditor(req.user.perm) || User.isCommerciale(req.user.perm)) {
|
||||
for (const elem of myexp.myelems) {
|
||||
const { ImportedRecords, newId } = await upsertRecord(table, elem, idapp, newIdPage);
|
||||
ImportedRecordstemp += ImportedRecords ? 1 : 0;
|
||||
@@ -1258,6 +1259,7 @@ router.patch('/chval', authenticate, async (req, res) => {
|
||||
(!User.isAdmin(req.user.perm)
|
||||
&& !User.isManager(req.user.perm)
|
||||
&& !User.isEditor(req.user.perm)
|
||||
&& !User.isCommerciale(req.user.perm)
|
||||
&& !User.isFacilitatore(req.user.perm))
|
||||
&& (await !tools.ModificheConsentite(req, mydata.table, fieldsvalue, id)))
|
||||
&& !((mydata.table === 'accounts')
|
||||
@@ -1620,7 +1622,7 @@ router.get('/copyfromapptoapp/:idapporig/:idappdest', async (req, res) => {
|
||||
if (!idapporig || !idappdest || (idcode !== 'ASD3429Kjgà#@cvX'))
|
||||
res.status(400).send();
|
||||
|
||||
const mytablesstr = ['settings', 'users', 'templemail'];
|
||||
const mytablesstr = ['settings', 'users', 'templemail', 'destnewsletter'];
|
||||
|
||||
try {
|
||||
let numrectot = 0;
|
||||
@@ -1908,7 +1910,7 @@ async function measurePromises(promises) {
|
||||
// Ordina le chiamate per tempo decrescente e prende le 10 più lente
|
||||
const slowCalls = Object.entries(timings)
|
||||
.sort(([, timeA], [, timeB]) => timeB - timeA)
|
||||
.slice(0, 5)
|
||||
.slice(0, 10)
|
||||
.map(([key, time]) => ({ key, time }));
|
||||
|
||||
return { data, totalTime, slowCalls };
|
||||
@@ -2007,10 +2009,12 @@ async function load(req, res, version = '0') {
|
||||
providers: version >= 91 ? Provider.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
scontisticas: version >= 91 ? Scontistica.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
gasordines: version >= 91 ? Gasordine.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
products: version >= 91
|
||||
/*products: version >= 91
|
||||
? Product.findAllIdApp(idapp, undefined, undefined, req.user ? User.isManager(req.user.perm) : false)
|
||||
: Promise.resolve([]),
|
||||
productInfos: version >= 91 ? ProductInfo.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
: Promise.resolve([]),*/
|
||||
products: Promise.resolve([]),
|
||||
// productInfos: version >= 91 ? ProductInfo.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
productInfos: Promise.resolve([]),
|
||||
catprods: version >= 91 ? Product.getArrCatProds(idapp, shared_consts.PROD.BOTTEGA) : Promise.resolve([]),
|
||||
subcatprods: version >= 91 ? SubCatProd.findAllIdApp(idapp) : Promise.resolve([]),
|
||||
catprods_gas: version >= 91 ? Product.getArrCatProds(idapp, shared_consts.PROD.GAS) : Promise.resolve([]),
|
||||
@@ -2040,8 +2044,8 @@ async function load(req, res, version = '0') {
|
||||
|
||||
const { data, totalTime, slowCalls } = await measurePromises(promises);
|
||||
// console.log('Risultati delle promise:', data);
|
||||
// console.log('Tempo totale di esecuzione:', totalTime, 'secondi');
|
||||
// console.log('Le 5 chiamate più lente:', slowCalls);
|
||||
console.log('Tempo di esecuzione:', totalTime, 'secondi');
|
||||
//console.log('Le 10 chiamate più lente:', slowCalls);
|
||||
|
||||
// Aggiornamento delle informazioni dell'utente, se presente
|
||||
let myuser = req.user;
|
||||
|
||||
@@ -10,6 +10,7 @@ const { User } = require('../models/user');
|
||||
const { MailingList } = require('../models/mailinglist');
|
||||
const { Newstosent } = require('../models/newstosent');
|
||||
const { TemplEmail } = require('../models/templemail');
|
||||
const { DestNewsletter } = require('../models/destnewsletter');
|
||||
const { OpzEmail } = require('../models/opzemail');
|
||||
const { Settings } = require('../models/settings');
|
||||
|
||||
@@ -254,12 +255,21 @@ router.post('/load', authenticate, async (req, res) => {
|
||||
idapp = req.body.idapp;
|
||||
locale = req.body.locale;
|
||||
|
||||
const ris = {
|
||||
newsstate: await getDataNewsletter(locale, idapp),
|
||||
serv_settings: await Settings.findAllIdApp(idapp, true, false),
|
||||
templemail: await TemplEmail.findAllIdApp(idapp, true),
|
||||
opzemail: await OpzEmail.findAllIdApp(idapp)
|
||||
};
|
||||
let ris;
|
||||
|
||||
try {
|
||||
ris = {
|
||||
newsstate: await getDataNewsletter(locale, idapp),
|
||||
serv_settings: await Settings.findAllIdApp(idapp, true, false),
|
||||
templemail: await TemplEmail.findAllIdApp(idapp, true),
|
||||
destnewsletter: await DestNewsletter.findAllIdApp(idapp, true),
|
||||
opzemail: await OpzEmail.findAllIdApp(idapp)
|
||||
};
|
||||
|
||||
} catch (e) {
|
||||
console.error('Errore load newsletter: ', e);
|
||||
ris = { code: server_constants.RIS_CODE_ERR, msg: e.message };
|
||||
}
|
||||
|
||||
return res.send(ris);
|
||||
});
|
||||
@@ -275,12 +285,19 @@ router.post('/setactivate', authenticate, async (req, res) => {
|
||||
activate,
|
||||
};
|
||||
|
||||
return await Newstosent.findOneAndUpdate({ _id: id }, { $set: rec }, { new: false }).then((item) => {
|
||||
const ris = getDataNewsletter(locale, idapp);
|
||||
try {
|
||||
const item = await Newstosent.findOneAndUpdate({ _id: id }, { $set: rec }, { new: false });
|
||||
|
||||
return res.send(ris);
|
||||
if (item) {
|
||||
const ris = await getDataNewsletter(locale, idapp);
|
||||
return res.send(ris);
|
||||
} else {
|
||||
return res.status(400).send({ code: server_constants.RIS_CODE_ERR, msg: 'Record not found' });
|
||||
}
|
||||
|
||||
});
|
||||
} catch (e) {
|
||||
return res.status(400).send({ code: server_constants.RIS_CODE_ERR, msg: e.message });
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -296,7 +313,7 @@ router.post('/unsubscribe_user', async (req, res) => {
|
||||
if (myuser) {
|
||||
const hashcalc = tools.getHash(myuser.email + myuser.username);
|
||||
|
||||
if (hashcalc === hashemail) {
|
||||
if (hashcalc === hashemail) {
|
||||
await User.setNewsletter(idapp, myuser.username, false);
|
||||
|
||||
return res.send({
|
||||
@@ -329,28 +346,37 @@ router.post('/unsubscribe', (req, res) => {
|
||||
console.log('Remove_from_MailingList -> ', ris);
|
||||
|
||||
if (!!ris.myperson && mailchimpactive) {
|
||||
const subscriber_md5_email = tools.getmd5(ris.myperson.email);
|
||||
request
|
||||
.put('https://' + newsletter[idapp].mailchimpInstance + '.api.mailchimp.com/3.0/lists/' + newsletter[idapp].listUniqueId + '/members/' + subscriber_md5_email)
|
||||
.set('Content-Type', 'application/json;charset=utf-8')
|
||||
.set('Authorization', 'Basic ' + new Buffer('any:' + newsletter[idapp].mailchimpApiKey).toString('base64'))
|
||||
.send({
|
||||
'email_address': ris.myperson.email,
|
||||
'status': server_constants.RIS_UNSUBSCRIBED_STR
|
||||
})
|
||||
.end(function (err, response) {
|
||||
console.log("STAT", response.status);
|
||||
try {
|
||||
const subscriber_md5_email = tools.getmd5(ris.myperson.email);
|
||||
request
|
||||
.put('https://' + newsletter[idapp].mailchimpInstance + '.api.mailchimp.com/3.0/lists/' + newsletter[idapp].listUniqueId + '/members/' + subscriber_md5_email)
|
||||
.set('Content-Type', 'application/json;charset=utf-8')
|
||||
.set('Authorization', 'Basic ' + new Buffer('any:' + newsletter[idapp].mailchimpApiKey).toString('base64'))
|
||||
.send({
|
||||
'email_address': ris.myperson.email,
|
||||
'status': server_constants.RIS_UNSUBSCRIBED_STR
|
||||
})
|
||||
.end(function (err, response) {
|
||||
console.log("STAT", response.status);
|
||||
|
||||
if (response.status < 300 || (response.status === 400 && response.body.title === "Member Exists")) {
|
||||
res.send({
|
||||
code: server_constants.RIS_UNSUBSCRIBED_OK
|
||||
});
|
||||
} else {
|
||||
res.send({
|
||||
code: server_constants.RIS_SUBSCRIBED_ERR
|
||||
});
|
||||
}
|
||||
if (response.status < 300 || (response.status === 400 && response.body.title === "Member Exists")) {
|
||||
res.send({
|
||||
code: server_constants.RIS_UNSUBSCRIBED_OK
|
||||
});
|
||||
} else {
|
||||
res.send({
|
||||
code: server_constants.RIS_SUBSCRIBED_ERR
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
} catch (e) {
|
||||
console.error('Errore unsubscribe -> ', e);
|
||||
res.send({
|
||||
code: server_constants.RIS_SUBSCRIBED_ERR,
|
||||
msg: e.message
|
||||
});
|
||||
}
|
||||
|
||||
} else {
|
||||
res.send({ code: ris.code, msg: ris.msg });
|
||||
|
||||
@@ -54,6 +54,7 @@ const { Account } = require('../models/account');
|
||||
const mongoose = require('mongoose').set('debug', false);
|
||||
|
||||
const Subscription = require('../models/subscribers');
|
||||
const Macro = require('../modules/Macro');
|
||||
|
||||
async function existSubScribe(userId, access, browser) {
|
||||
try {
|
||||
@@ -1074,6 +1075,17 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
||||
|
||||
await CatProd.deleteMany({ idapp });
|
||||
await SubCatProd.deleteMany({ idapp });
|
||||
} else if (mydata.dbop === 'removeProductInfoWithoutDateUpdatedFromGM') {
|
||||
|
||||
mystr = await ProductInfo.removeProductInfoWithoutDateUpdatedFromGM(idapp);
|
||||
ris = { mystr };
|
||||
|
||||
} else if (mydata.dbop === 'StatMacro') {
|
||||
|
||||
const macro = new Macro(idapp, {});
|
||||
mystr = await macro.getStat();
|
||||
ris = { mystr };
|
||||
|
||||
} else if (mydata.dbop === 'updateAllBook') {
|
||||
// chiama updateAllBook
|
||||
const { updateAllBook } = require("../controllers/articleController");
|
||||
@@ -1203,6 +1215,7 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
||||
'settings',
|
||||
'users',
|
||||
'templemail',
|
||||
'destnewsletter',
|
||||
'contribtypes',
|
||||
'bots',
|
||||
'cfgservers'];
|
||||
@@ -1255,6 +1268,9 @@ async function eseguiDbOp(idapp, mydata, locale, req, res) {
|
||||
} else if (mydata.dbop === 'listCollectionsBySize') {
|
||||
mystr = await tools.listCollectionsBySize();
|
||||
ris = { mystr };
|
||||
} else if (mydata.dbop === 'EnableNewsOn_ToAll') {
|
||||
mystr = await User.setNewsletterToAll(idapp);
|
||||
|
||||
} else if (mydata.dbop === 'MyElemSetIdPageInsteadThePah') {
|
||||
mystr = await MyElem.SetIdPageInsteadThePah(idapp);
|
||||
ris = { mystr };
|
||||
|
||||
Reference in New Issue
Block a user