Move UserController to use adaptiveCollection for findOneAndUpdate.
This commit is contained in:
@@ -40,32 +40,27 @@ export class UserController extends AdaptableController {
|
|||||||
|
|
||||||
|
|
||||||
verifyEmail(username, token) {
|
verifyEmail(username, token) {
|
||||||
|
if (!this.shouldVerifyEmails) {
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
|
|
||||||
// Trying to verify email when not enabled
|
// Trying to verify email when not enabled
|
||||||
if (!this.shouldVerifyEmails) {
|
// TODO: Better error here.
|
||||||
reject();
|
return Promise.reject();
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
return this.config.database
|
||||||
var database = this.config.database;
|
.adaptiveCollection('_User')
|
||||||
|
.then(collection => {
|
||||||
database.collection('_User').then(coll => {
|
|
||||||
// Need direct database access because verification token is not a parse field
|
// Need direct database access because verification token is not a parse field
|
||||||
return coll.findAndModify({
|
return collection.findOneAndUpdate({
|
||||||
username: username,
|
username: username,
|
||||||
_email_verify_token: token,
|
_email_verify_token: token
|
||||||
}, null, {$set: {emailVerified: true}}, (err, doc) => {
|
}, {$set: {emailVerified: true}});
|
||||||
if (err || !doc.value) {
|
})
|
||||||
reject(err);
|
.then(document => {
|
||||||
} else {
|
if (!document) {
|
||||||
resolve(doc.value);
|
return Promise.reject();
|
||||||
}
|
}
|
||||||
});
|
return document;
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
checkResetTokenValidity(username, token) {
|
checkResetTokenValidity(username, token) {
|
||||||
@@ -129,24 +124,16 @@ export class UserController extends AdaptableController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setPasswordResetToken(email) {
|
setPasswordResetToken(email) {
|
||||||
var database = this.config.database;
|
let token = randomString(25);
|
||||||
var token = randomString(25);
|
return this.config.database
|
||||||
return new Promise((resolve, reject) => {
|
.adaptiveCollection('_User')
|
||||||
return database.collection('_User').then(coll => {
|
.then(collection => {
|
||||||
// Need direct database access because verification token is not a parse field
|
// Need direct database access because verification token is not a parse field
|
||||||
return coll.findAndModify({
|
return collection.findOneAndUpdate(
|
||||||
email: email,
|
{ email: email}, // query
|
||||||
}, null, {$set: {_perishable_token: token}}, (err, doc) => {
|
{ $set: { _perishable_token: token } } // update
|
||||||
if (err || !doc.value) {
|
);
|
||||||
console.error(err);
|
|
||||||
reject(err);
|
|
||||||
} else {
|
|
||||||
doc.value._perishable_token = token;
|
|
||||||
resolve(doc.value);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sendPasswordResetEmail(email) {
|
sendPasswordResetEmail(email) {
|
||||||
|
|||||||
Reference in New Issue
Block a user