The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/client/startup/usersObserve.ts

40 lines
1.1 KiB

import { Meteor } from 'meteor/meteor';
import { Session } from 'meteor/session';
import { RoomManager } from '../../app/ui-utils/client';
import { IUser } from '../../definition/IUser';
Meteor.startup(() => {
Meteor.users
.find(
{},
{
fields: {
name: 1,
username: 1,
status: 1,
utcOffset: 1,
statusText: 1,
},
},
)
.observe({
added(user: IUser) {
Session.set(`user_${user.username}_status`, user.status);
Session.set(`user_${user.username}_status_text`, user.statusText);
RoomManager.updateUserStatus(user, user.status, user.utcOffset);
},
changed(user: IUser) {
Session.set(`user_${user.username}_status`, user.status);
if (user.statusText !== undefined) {
Session.set(`user_${user.username}_status_text`, user.statusText);
}
RoomManager.updateUserStatus(user, user.status, user.utcOffset);
},
removed(user) {
Session.set(`user_${user.username}_status`, null);
Session.set(`user_${user.username}_status_text`, null);
RoomManager.updateUserStatus(user, 'offline', null);
},
});
});