diff --git a/app/lib/lib/MessageTypes.js b/app/lib/lib/MessageTypes.js index 9b96e038af2a..be706e8d3a09 100644 --- a/app/lib/lib/MessageTypes.js +++ b/app/lib/lib/MessageTypes.js @@ -47,6 +47,16 @@ Meteor.startup(function() { }; }, }); + MessageTypes.registerType({ + id: 'ult', + system: true, + message: 'User_left_team', + data(message) { + return { + user_left: message.u.username, + }; + }, + }); MessageTypes.registerType({ id: 'uj', system: true, @@ -57,6 +67,16 @@ Meteor.startup(function() { }; }, }); + MessageTypes.registerType({ + id: 'ujt', + system: true, + message: 'User_joined_team', + data(message) { + return { + user: message.u.username, + }; + }, + }); MessageTypes.registerType({ id: 'ut', system: true, diff --git a/app/lib/server/functions/addUserToRoom.js b/app/lib/server/functions/addUserToRoom.js index 1d82e7b1b54d..6fe080417529 100644 --- a/app/lib/server/functions/addUserToRoom.js +++ b/app/lib/server/functions/addUserToRoom.js @@ -68,6 +68,8 @@ export const addUserToRoom = function(rid, user, inviter, silenced) { }); } else if (room.prid) { Messages.createUserJoinWithRoomIdAndUserDiscussion(rid, user, { ts: now }); + } else if (room.teamMain) { + Messages.createUserJoinTeamWithRoomIdAndUser(rid, user, { ts: now }); } else { Messages.createUserJoinWithRoomIdAndUser(rid, user, { ts: now }); } diff --git a/app/lib/server/functions/removeUserFromRoom.js b/app/lib/server/functions/removeUserFromRoom.js index 823f82ba9881..2f3ab20298f6 100644 --- a/app/lib/server/functions/removeUserFromRoom.js +++ b/app/lib/server/functions/removeUserFromRoom.js @@ -30,6 +30,8 @@ export const removeUserFromRoom = function(rid, user, options = {}) { Messages.createUserRemovedWithRoomIdAndUser(rid, user, { u: options.byUser, }); + } else if (room.teamMain) { + Messages.createUserLeaveTeamWithRoomIdAndUser(rid, removedUser); } else { Messages.createUserLeaveWithRoomIdAndUser(rid, removedUser); } diff --git a/app/models/server/models/Messages.js b/app/models/server/models/Messages.js index da5f3d4aed11..f02dbf1c34a4 100644 --- a/app/models/server/models/Messages.js +++ b/app/models/server/models/Messages.js @@ -861,6 +861,11 @@ export class Messages extends Base { return this.createWithTypeRoomIdMessageAndUser('uj', roomId, message, user, extraData); } + createUserJoinTeamWithRoomIdAndUser(roomId, user, extraData) { + const message = user.username; + return this.createWithTypeRoomIdMessageAndUser('ujt', roomId, message, user, extraData); + } + createUserJoinWithRoomIdAndUserDiscussion(roomId, user, extraData) { const message = user.username; return this.createWithTypeRoomIdMessageAndUser('ut', roomId, message, user, extraData); @@ -871,6 +876,11 @@ export class Messages extends Base { return this.createWithTypeRoomIdMessageAndUser('ul', roomId, message, user, extraData); } + createUserLeaveTeamWithRoomIdAndUser(roomId, user, extraData) { + const message = user.username; + return this.createWithTypeRoomIdMessageAndUser('ult', roomId, message, user, extraData); + } + createUserRemovedWithRoomIdAndUser(roomId, user, extraData) { const message = user.username; return this.createWithTypeRoomIdMessageAndUser('ru', roomId, message, user, extraData); diff --git a/app/user-data-download/server/cronProcessDownloads.js b/app/user-data-download/server/cronProcessDownloads.js index 95e8f6ed360c..df5a7a4c57c2 100644 --- a/app/user-data-download/server/cronProcessDownloads.js +++ b/app/user-data-download/server/cronProcessDownloads.js @@ -158,6 +158,9 @@ const getMessageData = function(msg, hideUsers, userData, usersMap) { case 'ul': messageObject.msg = TAPi18n.__('User_left'); break; + case 'ult': + messageObject.msg = TAPi18n.__('User_left_team'); + break; case 'au': messageObject.msg = TAPi18n.__('User_added_by', { user_added: hideUserName(msg.msg, userData, usersMap), user_by: username }); break; diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index 86432071198e..7c5e81caf900 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -4215,9 +4215,15 @@ "User_joined_channel_female": "Has joined the channel.", "User_joined_channel_male": "Has joined the channel.", "User_joined_conversation": "Has joined the conversation", + "User_joined_team": "Has joined the team.", + "User_joined_team_female": "Has joined the team.", + "User_joined_team_male": "Has joined the team.", "User_left": "Has left the channel.", "User_left_female": "Has left the channel.", "User_left_male": "Has left the channel.", + "User_left_team": "Has left the team.", + "User_left_team_female": "Has left the team.", + "User_left_team_male": "Has left the team.", "User_logged_out": "User is logged out", "User_management": "User Management", "User_mentions_only": "User mentions only", diff --git a/packages/rocketchat-i18n/i18n/pt-BR.i18n.json b/packages/rocketchat-i18n/i18n/pt-BR.i18n.json index 5598f226f572..22bc8e88c111 100644 --- a/packages/rocketchat-i18n/i18n/pt-BR.i18n.json +++ b/packages/rocketchat-i18n/i18n/pt-BR.i18n.json @@ -3435,9 +3435,15 @@ "User_joined_channel_female": "Entrou no canal.", "User_joined_channel_male": "Entrou no canal.", "User_joined_conversation": "Entrou na conversa", + "User_joined_team": "Entrou no time.", + "User_joined_team_female": "Entrou no time.", + "User_joined_team_male": "Entrou no time.", "User_left": "Saiu da conversa.", "User_left_female": "Saiu da conversa.", "User_left_male": "Saiu da conversa.", + "User_left_team": "Saiu do time.", + "User_left_team_female": "Saiu do time.", + "User_left_team_male": "Saiu do time.", "User_logged_out": "Usuário não logado", "User_management": "Gerenciamento de usuários", "User_mentions_only": "O usuário menciona apenas", diff --git a/packages/rocketchat-i18n/i18n/pt.i18n.json b/packages/rocketchat-i18n/i18n/pt.i18n.json index ac09b90891dc..7723a6ffd6ad 100644 --- a/packages/rocketchat-i18n/i18n/pt.i18n.json +++ b/packages/rocketchat-i18n/i18n/pt.i18n.json @@ -3051,9 +3051,15 @@ "User_joined_channel_female": "Entrou no canal.", "User_joined_channel_male": "Entrou no canal.", "User_joined_conversation": "Entrou na conversa", + "User_joined_team": "Entrou no time.", + "User_joined_team_female": "Entrou no time.", + "User_joined_team_male": "Entrou no time.", "User_left": "Saiu do canal.", "User_left_female": "Saiu da canal.", "User_left_male": "Saiu da canal.", + "User_left_team": "Saiu do time.", + "User_left_team_female": "Saiu do time.", + "User_left_team_male": "Saiu do time.", "User_logged_out": "Utilizador não conectado", "User_management": "Administração de utilizadores", "User_mentions_only": "O utilizador menciona apenas",