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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user