From 4e3e603ee74011d206b858794553b4f04159807f Mon Sep 17 00:00:00 2001 From: barisusakli Date: Thu, 20 Aug 2015 14:43:34 -0400 Subject: [PATCH] closes #3456 --- src/user/approval.js | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/user/approval.js b/src/user/approval.js index 2c263d2c46..e74dee6649 100644 --- a/src/user/approval.js +++ b/src/user/approval.js @@ -5,10 +5,11 @@ var async = require('async'), nconf = require('nconf'), request = require('request'), - db = require('./../database'), + db = require('../database'), meta = require('../meta'), emailer = require('../emailer'), notifications = require('../notifications'), + groups = require('../groups'), translator = require('../../public/src/modules/translator'), utils = require('../../public/src/utils'); @@ -97,10 +98,27 @@ module.exports = function(User) { }, function(next) { removeFromQueue(username, next); + }, + function(next) { + markNotificationRead(username, next); } ], callback); }; + function markNotificationRead(username, callback) { + var nid = 'new_register:' + username; + async.waterfall([ + function (next) { + groups.getMembers('administrators', 0, -1, next); + }, + function (uids, next) { + async.each(uids, function(uid, next) { + notifications.markRead(nid, uid, next); + }, next); + } + ], callback); + } + User.rejectRegistration = function(username, callback) { removeFromQueue(username, callback); }; @@ -109,7 +127,9 @@ module.exports = function(User) { async.parallel([ async.apply(db.sortedSetRemove, 'registration:queue', username), async.apply(db.delete, 'registration:queue:name:' + username) - ], callback); + ], function(err, results) { + callback(err); + }); } User.getRegistrationQueue = function(start, stop, callback) {