diff --git a/app/lib/server/functions/setUserActiveStatus.js b/app/lib/server/functions/setUserActiveStatus.js index c85651250715f..9dddb55d074e4 100644 --- a/app/lib/server/functions/setUserActiveStatus.js +++ b/app/lib/server/functions/setUserActiveStatus.js @@ -3,7 +3,7 @@ import { check } from 'meteor/check'; import { Accounts } from 'meteor/accounts-base'; import * as Mailer from '../../../mailer'; -import { Users, Subscriptions } from '../../../models'; +import { Users, Subscriptions, Rooms } from '../../../models'; import { settings } from '../../../settings'; import { relinquishRoomOwnerships } from './relinquishRoomOwnerships'; import { shouldRemoveOrChangeOwner, getSubscribedRoomsForUserWithDetails } from './getRoomsWithSingleOwner'; @@ -39,8 +39,10 @@ export function setUserActiveStatus(userId, active, confirmRelinquish = false) { if (active === false) { Users.unsetLoginTokens(userId); + Rooms.setReadOnlyByUserId(userId, true, false); } else { Users.unsetReason(userId); + Rooms.setReadOnlyByUserId(userId, false, false); } if (active && !settings.get('Accounts_Send_Email_When_Activating')) { return true; diff --git a/app/models/server/models/Rooms.js b/app/models/server/models/Rooms.js index e48adabdb4435..a42ea9e6f4447 100644 --- a/app/models/server/models/Rooms.js +++ b/app/models/server/models/Rooms.js @@ -229,6 +229,22 @@ export class Rooms extends Base { return this.update(query, update); } + setReadOnlyByUserId(_id, readOnly, reactWhenReadOnly) { + const query = { + uids: _id, + t: 'd', + }; + + const update = { + $set: { + ro: readOnly, + reactWhenReadOnly, + }, + }; + + return this.update(query, update, { multi: true }); + } + setAllowReactingWhenReadOnlyById = function(_id, allowReacting) { const query = { _id, diff --git a/packages/rocketchat-i18n/i18n/en.i18n.json b/packages/rocketchat-i18n/i18n/en.i18n.json index 6844ce529a91b..a0b5723fd4418 100644 --- a/packages/rocketchat-i18n/i18n/en.i18n.json +++ b/packages/rocketchat-i18n/i18n/en.i18n.json @@ -3397,6 +3397,7 @@ "Room_has_been_unarchived": "Room has been unarchived", "Room_Info": "Room Information", "room_is_blocked": "This room is blocked", + "room_account_deactivated": "This account is deactivated", "room_is_read_only": "This room is read only", "room_name": "room name", "Room_name_changed": "Room name changed to: __room_name__ by __user_by__",