mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-08 06:55:46 +01:00
added daily cleaning of reset tokens #2708
This commit is contained in:
@@ -18,9 +18,7 @@ var async = require('async'),
|
||||
(function(Notifications) {
|
||||
|
||||
Notifications.init = function() {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
winston.verbose('[notifications.init] Registering jobs.');
|
||||
}
|
||||
winston.verbose('[notifications.init] Registering jobs.');
|
||||
new cron('*/30 * * * *', Notifications.prune, null, true);
|
||||
};
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
var winston = require('winston'),
|
||||
cronJob = require('cron').CronJob,
|
||||
|
||||
user = require('../user'),
|
||||
meta = require('../meta');
|
||||
|
||||
module.exports = function(User) {
|
||||
@@ -23,6 +22,8 @@ module.exports = function(User) {
|
||||
winston.verbose('[user.startJobs] Digest job (monthly) started.');
|
||||
User.digest.execute('month');
|
||||
}, null, true);
|
||||
|
||||
new cronJob('0 0 0 * * *', User.reset.clean, null, true);
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
var async = require('async'),
|
||||
nconf = require('nconf'),
|
||||
winston = require('winston'),
|
||||
|
||||
user = require('../user'),
|
||||
utils = require('../../public/src/utils'),
|
||||
@@ -13,7 +14,6 @@ var async = require('async'),
|
||||
emailer = require('../emailer');
|
||||
|
||||
(function(UserReset) {
|
||||
|
||||
UserReset.validate = function(code, callback) {
|
||||
db.getObjectField('reset:uid', code, function(err, uid) {
|
||||
if (err || !uid) {
|
||||
@@ -86,4 +86,20 @@ var async = require('async'),
|
||||
});
|
||||
};
|
||||
|
||||
UserReset.clean = function(callback) {
|
||||
// Locate all codes that have expired, and remove them from the set/hash
|
||||
async.waterfall([
|
||||
async.apply(db.getSortedSetRangeByScore, 'reset:issueDate', 0, -1, -1, +new Date()-(1000*60*120)),
|
||||
function(tokens, next) {
|
||||
if (!tokens.length) { return next(); }
|
||||
|
||||
winston.verbose('[UserReset.clean] Removing ' + tokens.length + ' reset tokens from database');
|
||||
async.parallel([
|
||||
async.apply(db.deleteObjectField, 'reset:uid', tokens),
|
||||
async.apply(db.sortedSetRemove, 'reset:issueDate', tokens)
|
||||
], next);
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
}(exports));
|
||||
|
||||
Reference in New Issue
Block a user