v1.18.x
barisusakli 9 years ago
parent 145b8289fc
commit 1c0ef00836

@ -2,12 +2,12 @@
var async = require('async'); var async = require('async');
var nconf = require('nconf'); var nconf = require('nconf');
var winston = require('winston');
var user = require('../user'); var user = require('../user');
var emailer = require('../emailer'); var emailer = require('../emailer');
var notifications = require('../notifications'); var notifications = require('../notifications');
var meta = require('../meta'); var meta = require('../meta');
var utils = require('../../public/src/utils');
var sockets = require('../socket.io'); var sockets = require('../socket.io');
module.exports = function(Messaging) { module.exports = function(Messaging) {
@ -78,27 +78,46 @@ module.exports = function(Messaging) {
} }
}); });
sendNotificationEmails(uids, messageObj);
});
}
function sendNotificationEmails(uids, messageObj) {
if (parseInt(meta.config.disableEmailSubscriptions, 10) === 1) { if (parseInt(meta.config.disableEmailSubscriptions, 10) === 1) {
return callback(); return;
} }
user.getMultipleUserSettings(uids, function(err, userSettings) { async.parallel({
userData: function(next) {
user.getUsersFields(uids, ['uid', 'username', 'userslug'], next);
},
settings: function(next) {
user.getMultipleUserSettings(uids, next);
}
}, function(err, results) {
if (err) { if (err) {
return callback(err); return winston.error(err);
} }
userSettings = userSettings.filter(function(settings) {
return settings && settings.sendChatNotifications; results.userData = results.userData.filter(function(userData, index) {
return userData && results.userSettings[index] && results.userSettings[index].sendChatNotifications;
}); });
async.each(userSettings, function(settings, next) {
emailer.send('notif_chat', settings.uid, { async.each(results.userData, function(userData, next) {
emailer.send('notif_chat', userData.uid, {
subject: '[[email:notif.chat.subject, ' + messageObj.fromUser.username + ']]', subject: '[[email:notif.chat.subject, ' + messageObj.fromUser.username + ']]',
summary: '[[notifications:new_message_from, ' + messageObj.fromUser.username + ']]', summary: '[[notifications:new_message_from, ' + messageObj.fromUser.username + ']]',
message: messageObj, message: messageObj,
site_title: meta.config.title || 'NodeBB', site_title: meta.config.title || 'NodeBB',
url: nconf.get('url'), url: nconf.get('url'),
roomId: messageObj.roomId roomId: messageObj.roomId,
username: userData.username,
userslug: userData.userslug
}, next); }, next);
}, callback); }, function(err) {
if (err) {
winston.error(err);
}
}); });
}); });
} }

Loading…
Cancel
Save