Do not show "Forget room" button in Room View header for guest users (#10898)

* Do not show "Forget room" button in Room View header for guest users

You can observe this problem by opening this in a new private tab:
https://app.element.io/#/room/#matrix:matrix.org

This is a public room with guest access enabled and Element will use a
guest account to display it.

Showing a "Forget room" button in the header for guest users is
pointless. Clicking on it leads to a `M_GUEST_ACCESS_FORBIDDEN` error.

Signed-off-by: Slavi Pantaleev <slavi@devture.com>

* Iterate

---------

Signed-off-by: Slavi Pantaleev <slavi@devture.com>
Co-authored-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
Slavi Pantaleev 2023-07-25 10:57:26 +03:00 committed by GitHub
parent d268cc1b75
commit 4316ebae29
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 34 additions and 1 deletions

View file

@ -515,4 +515,33 @@ describe("RoomView", () => {
await findByText("Are you sure you're at the right place?");
expect(asFragment()).toMatchSnapshot();
});
describe("Peeking", () => {
beforeEach(() => {
// Make room peekable
room.currentState.setStateEvents([
new MatrixEvent({
type: "m.room.history_visibility",
state_key: "",
content: {
history_visibility: "world_readable",
},
room_id: room.roomId,
}),
]);
});
it("should show forget room button for non-guests", async () => {
mocked(cli.isGuest).mockReturnValue(false);
await mountRoomView();
expect(screen.getByLabelText("Forget room")).toBeInTheDocument();
});
it("should not show forget room button for guests", async () => {
mocked(cli.isGuest).mockReturnValue(true);
await mountRoomView();
expect(screen.queryByLabelText("Forget room")).not.toBeInTheDocument();
});
});
});