mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	user.isOnline fix
wont hit db on every user socket connect or user disconnect
This commit is contained in:
		
							
								
								
									
										30
									
								
								src/user.js
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								src/user.js
									
									
									
									
									
								
							| @@ -408,36 +408,6 @@ var | ||||
| 		} | ||||
| 	}; | ||||
|  | ||||
| 	User.isOnline = function(uids, callback) { | ||||
| 		if (!Array.isArray(uids)) { | ||||
| 			uids = [uids]; | ||||
| 		} | ||||
|  | ||||
| 		User.getMultipleUserFields(uids, ['uid', 'username', 'userslug', 'picture', 'status', 'reputation', 'postcount'] , function(err, userData) { | ||||
| 			if (err) { | ||||
| 				return callback(err); | ||||
| 			} | ||||
|  | ||||
| 			var websockets = require('./socket.io'); | ||||
|  | ||||
| 			userData = userData.map(function(user) { | ||||
| 				var online = websockets.isUserOnline(user.uid); | ||||
| 				user.status = online ? (user.status || 'online') : 'offline'; | ||||
|  | ||||
| 				if (user.status === 'offline') { | ||||
| 					online = false; | ||||
| 				} | ||||
|  | ||||
| 				user.online = online; | ||||
| 				user.timestamp = Date.now(); | ||||
| 				user.rooms = websockets.getUserRooms(user.uid); | ||||
| 				return user; | ||||
| 			}); | ||||
|  | ||||
| 			callback(null, userData); | ||||
| 		}); | ||||
| 	}; | ||||
|  | ||||
| 	User.getIgnoredCategories = function(uid, callback) { | ||||
| 		db.getSortedSetRange('uid:' + uid + ':ignored:cids', 0, -1, callback); | ||||
| 	}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user