fix: fire action:user.online on user login

isekai-main
Barış Soner Uşaklı 2 years ago
parent 188ec62f9a
commit 7397873db3

@ -383,7 +383,7 @@ authenticationController.onSuccessfulLogin = async function (req, uid) {
}), }),
user.auth.addSession(uid, req.sessionID), user.auth.addSession(uid, req.sessionID),
user.updateLastOnlineTime(uid), user.updateLastOnlineTime(uid),
user.updateOnlineUsers(uid), user.onUserOnline(uid, Date.now()),
analytics.increment('logins'), analytics.increment('logins'),
db.incrObjectFieldBy('global', 'loginCount', 1), db.incrObjectFieldBy('global', 'loginCount', 1),
]); ]);

@ -27,9 +27,13 @@ module.exports = function (User) {
if (now - parseInt(userOnlineTime, 10) < 300000) { if (now - parseInt(userOnlineTime, 10) < 300000) {
return; return;
} }
await db.sortedSetAdd('users:online', now, uid); await User.onUserOnline(uid, now);
topics.pushUnreadCount(uid); topics.pushUnreadCount(uid);
plugins.hooks.fire('action:user.online', { uid: uid, timestamp: now }); };
User.onUserOnline = async (uid, timestamp) => {
await db.sortedSetAdd('users:online', timestamp, uid);
plugins.hooks.fire('action:user.online', { uid, timestamp });
}; };
User.isOnline = async function (uid) { User.isOnline = async function (uid) {

Loading…
Cancel
Save