Support for creator/owner power level (#30525)
* Support for creator/owner power level This just shows them as 'Owner' in the list. * Add test for owner level
This commit is contained in:
@@ -31,11 +31,13 @@ export interface MemberTileViewState extends MemberTileViewModelProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export enum PowerStatus {
|
export enum PowerStatus {
|
||||||
|
Creator = "creator",
|
||||||
Admin = "admin",
|
Admin = "admin",
|
||||||
Moderator = "moderator",
|
Moderator = "moderator",
|
||||||
}
|
}
|
||||||
|
|
||||||
const PowerLabel: Record<PowerStatus, TranslationKey> = {
|
const PowerLabel: Record<PowerStatus, TranslationKey> = {
|
||||||
|
[PowerStatus.Creator]: _td("power_level|creator"),
|
||||||
[PowerStatus.Admin]: _td("power_level|admin"),
|
[PowerStatus.Admin]: _td("power_level|admin"),
|
||||||
[PowerStatus.Moderator]: _td("power_level|moderator"),
|
[PowerStatus.Moderator]: _td("power_level|moderator"),
|
||||||
};
|
};
|
||||||
@@ -115,6 +117,7 @@ export function useMemberTileViewModel(props: MemberTileViewModelProps): MemberT
|
|||||||
const name = props.member.name;
|
const name = props.member.name;
|
||||||
|
|
||||||
const powerStatusMap = new Map([
|
const powerStatusMap = new Map([
|
||||||
|
[Infinity, PowerStatus.Creator],
|
||||||
[100, PowerStatus.Admin],
|
[100, PowerStatus.Admin],
|
||||||
[50, PowerStatus.Moderator],
|
[50, PowerStatus.Moderator],
|
||||||
]);
|
]);
|
||||||
|
|||||||
@@ -348,10 +348,7 @@ export default class RolesRoomSettingsTab extends React.Component<IProps, RolesR
|
|||||||
powerLevelDescriptors.users_default.defaultValue,
|
powerLevelDescriptors.users_default.defaultValue,
|
||||||
);
|
);
|
||||||
|
|
||||||
let currentUserLevel = userLevels[client.getUserId()!];
|
const currentUserLevel = room.getMember(client.getSafeUserId())?.powerLevel ?? defaultUserLevel;
|
||||||
if (currentUserLevel === undefined) {
|
|
||||||
currentUserLevel = defaultUserLevel;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.populateDefaultPlEvents(
|
this.populateDefaultPlEvents(
|
||||||
eventsLevels,
|
eventsLevels,
|
||||||
|
|||||||
@@ -1763,6 +1763,7 @@
|
|||||||
},
|
},
|
||||||
"power_level": {
|
"power_level": {
|
||||||
"admin": "Admin",
|
"admin": "Admin",
|
||||||
|
"creator": "Owner",
|
||||||
"custom": "Custom (%(level)s)",
|
"custom": "Custom (%(level)s)",
|
||||||
"custom_level": "Custom level",
|
"custom_level": "Custom level",
|
||||||
"default": "Default",
|
"default": "Default",
|
||||||
|
|||||||
@@ -98,11 +98,17 @@ describe("MemberTileView", () => {
|
|||||||
);
|
);
|
||||||
expect(container2).toHaveTextContent("Admin");
|
expect(container2).toHaveTextContent("Admin");
|
||||||
|
|
||||||
member.isInvite = true;
|
member.powerLevel = Infinity;
|
||||||
const { container: container3 } = render(
|
const { container: container3 } = render(
|
||||||
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
|
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
|
||||||
);
|
);
|
||||||
expect(container3).toHaveTextContent("Invited");
|
expect(container3).toHaveTextContent("Owner");
|
||||||
|
|
||||||
|
member.isInvite = true;
|
||||||
|
const { container: container4 } = render(
|
||||||
|
<RoomMemberTileView member={member} index={0} memberCount={1} onFocus={jest.fn()} />,
|
||||||
|
);
|
||||||
|
expect(container4).toHaveTextContent("Invited");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user