'use strict'; var async = require('async'); var winston = require('winston'); var S = require('string'); var nconf = require('nconf'); var websockets = require('./index'); var user = require('../user'); var posts = require('../posts'); var topics = require('../topics'); var privileges = require('../privileges'); var notifications = require('../notifications'); var plugins = require('../plugins'); var SocketHelpers = {}; SocketHelpers.notifyOnlineUsers = function(uid, result) { async.waterfall([ function(next) { user.getUidsFromSet('users:online', 0, -1, next); }, function(uids, next) { privileges.topics.filterUids('read', result.posts[0].topic.tid, uids, next); }, function(uids, next) { plugins.fireHook('filter:sockets.sendNewPostToUids', {uidsTo: uids, uidFrom: uid, type: 'newPost'}, next); } ], function(err, data) { if (err) { return winston.error(err.stack); } var uids = data.uidsTo; for(var i=0; i