versione 1.2.14 :

- aggiornati i file di configurazione, ENV e script non funzionanti., package.
- corretto custom-service-worker.js con CORS
- ottimizzato il server, la chiamata Load iniziale (senza promise, con async/await).
This commit is contained in:
Surya Paolo
2025-03-12 21:03:02 +01:00
parent d106a59bb5
commit 7827e49760
19 changed files with 594 additions and 1549 deletions

View File

@@ -577,11 +577,11 @@ UserSchema.methods.generateAuthToken = function (req) {
});
};
UserSchema.statics.setOnLine = function (idapp, username) {
UserSchema.statics.setOnLine = async function (idapp, username) {
const User = this;
try {
return User.findOneAndUpdate({ idapp, username }, { $set: { lasttimeonline: new Date() } });
return await User.findOneAndUpdate({ idapp, username }, { $set: { lasttimeonline: new Date() } });
} catch (e) {
}
@@ -733,58 +733,41 @@ UserSchema.statics.isFacilitatore = function (perm) {
UserSchema.statics.findByToken = async function (token, typeaccess, con_auth, idapp) {
const User = this;
let decoded;
let code = server_constants.RIS_CODE_HTTP_INVALID_TOKEN;
let user = null;
let decoded;
if (!token) return { user, code };
try {
if (token) {
decoded = jwt.verify(token, process.env.SIGNCODE);
code = server_constants.RIS_CODE_OK;
}
} catch (e) {
if (e.expiredAt) {
decoded = jwt.verify(token, process.env.SIGNCODE);
code = server_constants.RIS_CODE_OK;
} catch (err) {
if (err.expiredAt) {
code = server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED;
if (con_auth) {
return { user: null, code };
}
if (con_auth) return { user: null, code };
} else {
console.error('Err findByToken:', e);
console.error('Err findByToken:', err);
}
return { user: null, code };
}
if (code === server_constants.RIS_CODE_OK) {
user = await User.findOne({
'_id': decoded.smart,
tokens: {
$elemMatch: {
token: token,
access: typeaccess,
},
user = await User.findOne({
_id: decoded.smart,
tokens: {
$elemMatch: {
token,
access: typeaccess,
},
});
},
}).lean();
if (user) {
let check_expiry_date = false
// Controlla se il sito ha attivo il controllo del Token Scaduto
if (tools.getEnableTokenExpiredByIdApp(user.idapp)) {
check_expiry_date = true
}
let tempo = Date.now() / 1000;
if (check_expiry_date && (decoded.exp < tempo)) {
console.log('Il token è scaduto, generazione del nuovo token...');
code = server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED;
} else {
// TOKEN ANCORA VALIDO
code = server_constants.RIS_CODE_OK;
}
if (user) {
const checkExpiry = tools.getEnableTokenExpiredByIdApp(user.idapp);
const currentTime = Date.now() / 1000;
if (checkExpiry && decoded.exp < currentTime) {
console.log('Il token è scaduto, generazione del nuovo token...');
code = server_constants.RIS_CODE_HTTP_FORBIDDEN_TOKEN_EXPIRED;
}
}
@@ -805,7 +788,7 @@ UserSchema.statics.findByTokenAnyAccess = function (token) {
return User.findOne({
'_id': decoded.smart,
'tokens.token': token,
});
}).lean();
};
UserSchema.statics.findByCredentials = function (idapp, username, password, pwdcrypted) {
@@ -2150,17 +2133,14 @@ UserSchema.statics.getArrUsernameFromFieldByUsername = async function (
idapp, username, field, subfield) {
const myobj = {};
myobj[field + '.' + subfield] = 1;
myobj[field + '.' + subfield + '.username'] = 1;
let arrrec = await User.findOne({
const rec = await User.findOne({
idapp, 'username': username,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
}, myobj).then((ris) => ris ? ris._doc[field][subfield] : []);
}, myobj);
if (arrrec && arrrec.length > 0) {
return arrrec.map(m => m.username);
}
return [];
return rec ? rec[field][subfield].map(m => m.username) : [];
};
@@ -5790,7 +5770,7 @@ UserSchema.statics.getExtraInfoByUsername = async function (idapp, username) {
let myuser = await User.findOne({ idapp, username }).lean();
if (myuser) {
myuserextra = await User.addExtraInfo(idapp, myuser, null);
myuserextra = await User.addExtraInfo(idapp, myuser);
return myuser.profile;
}
@@ -5816,18 +5796,18 @@ UserSchema.statics.getProfilePerActivitiesByUsername = async function (idapp, us
};
UserSchema.statics.addExtraInfo = async function (idapp, recUser, recUserSave, version) {
UserSchema.statics.addExtraInfo = async function (idapp, recUser, version) {
try {
// tools.startTimeLog('addExtraInfo')
if (version) {
if (version && recUser) {
let versattualeuser = 0;
if (!recUser.profile.version) {
if (!recUser?.profile?.version) {
recUser.version = 0;
versattualeuser = 0;
} else {
versattualeuser = recUser.profile.version;
versattualeuser = recUser.profile?.version;
}
// versattualeuser = 0; // TOGLIERE!
@@ -6281,6 +6261,26 @@ UserSchema.statics.getnumAnnunci = async function (idapp) {
};
// crea una funzione per aggiornare il lasttimeonline e useragent
UserSchema.statics.updateLastTimeAndUserAgent = async function (id, useragent) {
const User = this;
// cerca lo user by id e aggiorna i campi
// e ritorna il nuovo record
const ris = await User.findOneAndUpdate(
{ _id: id },
{
$set: {
lasttimeonline: new Date(),
useragent,
retry_pwd: 0
},
},
{ returnDocument: "after" }
).lean();
return ris;
}
UserSchema.statics.createNewSubRecord = async function (idapp, req) {
const User = this;