Togliere "in attesa di abilitazione"

Registrazione rapida (senza dover confermare, un link che scade dopo 48 ore.
This commit is contained in:
paoloar77
2022-11-02 22:32:54 +01:00
parent 03722c1867
commit 7c46487340
6 changed files with 125 additions and 46 deletions

View File

@@ -136,6 +136,12 @@ const UserSchema = new mongoose.Schema({
tokenforgot: {
type: String,
},
date_tokenreg: {
type: Date,
},
tokenreg: {
type: String,
},
lasttimeonline: {
type: Date,
},
@@ -733,6 +739,8 @@ UserSchema.statics.getProjectUser = function() {
email: 1,
date_reg: 1,
img: 1,
tokenreg: 1,
date_tokenreg: 1,
};
};
@@ -1204,6 +1212,57 @@ UserSchema.statics.createNewRequestPwdByUsernameAndGetLink = async function(idap
};
UserSchema.statics.getifRegTokenIsValid = async function(idapp, tokenreg) {
const User = this;
let regexp = new RegExp(`^${tokenreg}$`, 'i');
const user = await User.findOne({
idapp,
tokenreg: {$regex: regexp}
});
if (user && user.date_tokenreg) {
return user.date_tokenreg > (new Date().getTime());
}
return false;
}
UserSchema.statics.createNewReqRegistrationGetLink = async function(idapp, username) {
const User = this;
const user = await User.findOne({
idapp,
username,
$or: [{deleted: {$exists: false}}, {deleted: {$exists: true, $eq: false}}],
});
if (user) {
if (!user.date_tokenreg || (user.tokenreg && (user.date_tokenreg < new Date().getTime()))) {
// Se è scaduto, ne crea uno nuovo
// Creo il tokenforgot
user.tokenreg = jwt.sign(user._id.toHexString(), process.env.SIGNCODE).
toString();
user.tokenreg = user.tokenreg.replaceAll('.', '');
user.tokenreg = user.tokenreg.replaceAll('/', '');
user.tokenreg = user.tokenreg.substring(1,8);
user.date_tokenreg = tools.AddDate(new Date(), 2);
return await user.save().then(() => {
return user.tokenreg;
});
} else {
return user.tokenreg;
}
}
return '';
};
UserSchema.statics.findByEmail = function(idapp, email, onlyifVerifiedByAportador) {
const User = this;