Skip to content

Commit

Permalink
fix: Editing a room in the admin menu breaks that room's integration (#…
Browse files Browse the repository at this point in the history
…29019)

Co-authored-by: Matheus Barbosa Silva <36537004+matheusbsilva137@users.noreply.github.com>
  • Loading branch information
heitortanoue and matheusbsilva137 authored May 22, 2023
1 parent 222c8ec commit 8219455
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
5 changes: 5 additions & 0 deletions .changeset/quick-cows-repeat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@rocket.chat/meteor": patch
---

fix: Editing a room in the admin menu breaks that room's integration
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ const updateFName = async (rid: string, displayName: string): Promise<(UpdateRes
return Promise.all([Rooms.setFnameById(rid, displayName), Subscriptions.updateFnameByRoomId(rid, displayName)]);
};

const updateRoomName = async (rid: string, displayName: string) => {
const slugifiedRoomName = await getValidRoomName(displayName, rid);

const updateRoomName = async (rid: string, displayName: string, slugifiedRoomName: string) => {
// Check if the username is available
if (!(await checkUsernameAvailability(slugifiedRoomName))) {
throw new Meteor.Error('error-duplicate-handle', `A room, team or user with name '${slugifiedRoomName}' already exists`, {
Expand Down Expand Up @@ -52,24 +50,27 @@ export async function saveRoomName(
if (displayName === room.name) {
return;
}
const isDiscussion = Boolean(room?.prid);
let update;

if (!displayName?.trim()) {
return;
}

const slugifiedRoomName = await getValidRoomName(displayName, rid);
const isDiscussion = Boolean(room?.prid);

let update;

if (isDiscussion || isRoomFederated(room)) {
update = await updateFName(rid, displayName);
} else {
update = await updateRoomName(rid, displayName);
update = await updateRoomName(rid, displayName, slugifiedRoomName);
}

if (!update) {
return;
}

room.name && (await Integrations.updateRoomName(room.name, displayName));
room.name && (await Integrations.updateRoomName(room.name, slugifiedRoomName));
if (sendMessage) {
await Message.saveSystemMessage('r', rid, displayName, user);
}
Expand Down

0 comments on commit 8219455

Please sign in to comment.