1
0
mirror of https://github.com/matrix-org/matrix-react-sdk.git synced 2025-11-08 21:42:24 +03:00

Merge pull request #5476 from matrix-org/t3chguy/fix/15895

Hide Invite to this room CTA if no permission
This commit is contained in:
Michael Telatynski
2020-12-08 15:33:33 +00:00
committed by GitHub

View File

@@ -60,8 +60,9 @@ const NewRoomIntro = () => {
{ caption && <p>{ caption }</p> } { caption && <p>{ caption }</p> }
</React.Fragment>; </React.Fragment>;
} else { } else {
const inRoom = room && room.getMyMembership() === "join";
const topic = room.currentState.getStateEvents(EventType.RoomTopic, "")?.getContent()?.topic; const topic = room.currentState.getStateEvents(EventType.RoomTopic, "")?.getContent()?.topic;
const canAddTopic = room.currentState.maySendStateEvent(EventType.RoomTopic, cli.getUserId()); const canAddTopic = inRoom && room.currentState.maySendStateEvent(EventType.RoomTopic, cli.getUserId());
const onTopicClick = () => { const onTopicClick = () => {
dis.dispatch({ dis.dispatch({
@@ -99,9 +100,25 @@ const NewRoomIntro = () => {
}); });
} }
const onInviteClick = () => { let canInvite = inRoom;
dis.dispatch({ action: "view_invite", roomId }); const powerLevels = room.currentState.getStateEvents(EventType.RoomPowerLevels, "")?.getContent();
}; const me = room.getMember(cli.getUserId());
if (powerLevels && me && powerLevels.invite > me.powerLevel) {
canInvite = false;
}
let buttons;
if (canInvite) {
const onInviteClick = () => {
dis.dispatch({ action: "view_invite", roomId });
};
buttons = <div className="mx_NewRoomIntro_buttons">
<AccessibleButton className="mx_NewRoomIntro_inviteButton" kind="primary" onClick={onInviteClick}>
{_t("Invite to this room")}
</AccessibleButton>
</div>
}
const avatarUrl = room.currentState.getStateEvents(EventType.RoomAvatar, "")?.getContent()?.url; const avatarUrl = room.currentState.getStateEvents(EventType.RoomAvatar, "")?.getContent()?.url;
body = <React.Fragment> body = <React.Fragment>
@@ -119,11 +136,7 @@ const NewRoomIntro = () => {
roomName: () => <b>{ room.name }</b>, roomName: () => <b>{ room.name }</b>,
})}</p> })}</p>
<p>{topicText}</p> <p>{topicText}</p>
<div className="mx_NewRoomIntro_buttons"> { buttons }
<AccessibleButton className="mx_NewRoomIntro_inviteButton" kind="primary" onClick={onInviteClick}>
{_t("Invite to this room")}
</AccessibleButton>
</div>
</React.Fragment>; </React.Fragment>;
} }