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__",