Registrazione: scegliere se Telegram o Email

This commit is contained in:
Surya Paolo
2022-12-12 18:25:13 +01:00
parent 1d7a98fc3f
commit 71e49c31c3
5 changed files with 73 additions and 17 deletions

View File

@@ -461,6 +461,18 @@ UserSchema.methods.generateAuthToken = function (req) {
});
};
UserSchema.statics.setOnLine = function (idapp, username) {
const User = this;
try {
return User.findOneAndUpdate({ idapp, username }, { $set: { lasttimeonline: new Date() } });
} catch (e) {
}
};
UserSchema.statics.setPermissionsById = function (id, perm) {
const user = this;
@@ -1273,31 +1285,33 @@ UserSchema.statics.createNewReqRegistrationGetLink = async function (idapp, user
});
if (user) {
if (!user.date_tokenreg || (!user.tokenreg) || (user.tokenreg && (user.date_tokenreg < new Date().getTime()))) {
if (true) {
// Se è scaduto, ne crea uno nuovo
// Creo il tokenforgot
let mycodestr = user._id.toHexString() + new Date().getTime().toString();
user.tokenreg = jwt.sign(mycodestr, process.env.SIGNCODE).
toString();
if (user.tokenreg) {
try {
user.tokenreg = user.tokenreg.replaceAll('.', '');
user.tokenreg = user.tokenreg.replaceAll('/', '');
user.tokenreg = user.tokenreg.slice(-8);
} catch (e) {
console.error('err', e);
if (!user.date_tokenreg || (!user.tokenreg) || (user.tokenreg && (user.date_tokenreg < new Date().getTime()))) {
let mycodestr = user._id.toHexString() + new Date().getTime().toString();
user.tokenreg = jwt.sign(mycodestr, process.env.SIGNCODE).
toString();
if (user.tokenreg) {
try {
user.tokenreg = user.tokenreg.replaceAll('.', '');
user.tokenreg = user.tokenreg.replaceAll('/', '');
user.tokenreg = user.tokenreg.slice(-8);
} catch (e) {
console.error('err', e);
}
}
}
user.date_tokenreg = tools.AddDate(new Date(), 2);
user.date_tokenreg = tools.AddDate(new Date(), 1);
return await user.save().then(() => {
return user.tokenreg;
});
} else {
return user.tokenreg;
}
}
@@ -3535,6 +3549,31 @@ UserSchema.statics.getLastOnlineUsers = async function (idapp) {
};
UserSchema.statics.getLastSharedLink = async function (idapp) {
const User = this;
const lastn = 10;
return await User.find(
{
idapp,
$or: [
{ deleted: { $exists: false } },
{ deleted: { $exists: true, $eq: false } }],
},
{
username: 1,
name: 1,
surname: 1,
lasttimeonline: 1,
'profile.img': 1,
index: 1,
}).sort({ date_tokenreg: -1 }).limit(lastn).then((arr) => {
return arr;
});
};
UserSchema.statics.getDiffusoriUsers = async function (idapp) {
const User = this;
@@ -4242,7 +4281,7 @@ UserSchema.statics.tooManyReqPassword = async function (idapp, email, set) {
await User.findOneAndUpdate({ _id: user._id }, { $set: { retry_pwd: user.retry_pwd } });
}
return user.retry_pwd > maxnum ;
return user.retry_pwd > maxnum;
}
};