mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-03-12 15:41:01 +01:00
Merge remote-tracking branch 'refs/remotes/origin/master' into develop
This commit is contained in:
@@ -185,6 +185,7 @@ module.exports = function (User) {
|
||||
function (next) {
|
||||
db.sortedSetAdd('users:notvalidated', Date.now(), uid, next);
|
||||
},
|
||||
async.apply(User.reset.cleanByUid, uid),
|
||||
], function (err) {
|
||||
next(err);
|
||||
});
|
||||
|
||||
@@ -7,6 +7,7 @@ var winston = require('winston');
|
||||
var user = require('../user');
|
||||
var utils = require('../utils');
|
||||
var translator = require('../translator');
|
||||
var batch = require('../batch');
|
||||
|
||||
var db = require('../database');
|
||||
var meta = require('../meta');
|
||||
@@ -167,3 +168,42 @@ UserReset.clean = function (callback) {
|
||||
},
|
||||
], callback);
|
||||
};
|
||||
|
||||
UserReset.cleanByUid = function (uid, callback) {
|
||||
if (typeof callback !== 'function') {
|
||||
callback = function () {};
|
||||
}
|
||||
|
||||
var toClean = [];
|
||||
uid = parseInt(uid, 10);
|
||||
|
||||
async.waterfall([
|
||||
async.apply(db.getSortedSetRange.bind(db), 'reset:issueDate', 0, -1),
|
||||
function (tokens, next) {
|
||||
batch.processArray(tokens, function (tokens, next) {
|
||||
db.getObjectFields('reset:uid', tokens, function (err, results) {
|
||||
for (var code in results) {
|
||||
if (results.hasOwnProperty(code) && parseInt(results[code], 10) === uid) {
|
||||
toClean.push(code);
|
||||
}
|
||||
}
|
||||
|
||||
next(err);
|
||||
});
|
||||
}, next);
|
||||
},
|
||||
function (next) {
|
||||
if (!toClean.length) {
|
||||
winston.verbose('[UserReset.cleanByUid] No tokens found for uid (' + uid + ').');
|
||||
return setImmediate(next);
|
||||
}
|
||||
|
||||
winston.verbose('[UserReset.cleanByUid] Found ' + toClean.length + ' token(s), removing...');
|
||||
async.parallel([
|
||||
async.apply(db.deleteObjectFields, 'reset:uid', toClean),
|
||||
async.apply(db.sortedSetRemove, 'reset:issueDate', toClean),
|
||||
async.apply(db.sortedSetRemove, 'reset:issueDate:uid', uid),
|
||||
], next);
|
||||
},
|
||||
], callback);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user