user can only change roles and delete users with roles below his role
parent
ce692dc5a0
commit
8b6f59b0f0
|
@ -73,74 +73,88 @@ export default function AllUsers() {
|
||||||
{hasPermission(
|
{hasPermission(
|
||||||
webSocketContext.User.Permissions,
|
webSocketContext.User.Permissions,
|
||||||
Constants.PERMISSIONS.ALL_USERS.ACTION.CHANGE_ROLE
|
Constants.PERMISSIONS.ALL_USERS.ACTION.CHANGE_ROLE
|
||||||
) && (
|
) &&
|
||||||
<Popconfirm
|
(webSocketContext.AllRoles.find(
|
||||||
title="Change role to"
|
|
||||||
okText="Change"
|
|
||||||
onConfirm={() => onRoleChangeConfirm(record.key)}
|
|
||||||
okButtonProps={{
|
|
||||||
disabled:
|
|
||||||
selectedRoleId ===
|
|
||||||
webSocketContext.AllUsers.find(
|
|
||||||
(user) => user.Id === record.key
|
|
||||||
).RoleId,
|
|
||||||
}}
|
|
||||||
description={
|
|
||||||
<Select
|
|
||||||
style={{ width: 250 }}
|
|
||||||
getPopupContainer={(node) => node.parentNode}
|
|
||||||
defaultValue={
|
|
||||||
webSocketContext.AllUsers.find(
|
|
||||||
(user) => user.Id === record.key
|
|
||||||
).RoleId
|
|
||||||
}
|
|
||||||
value={selectedRoleId}
|
|
||||||
onChange={(e) => setSelectedRoleId(e)}
|
|
||||||
>
|
|
||||||
{webSocketContext.AllRoles.map((role) => (
|
|
||||||
<Select.Option key={role.Id}>
|
|
||||||
{role.DisplayName}
|
|
||||||
</Select.Option>
|
|
||||||
))}
|
|
||||||
</Select>
|
|
||||||
}
|
|
||||||
>
|
|
||||||
<Link
|
|
||||||
to="#"
|
|
||||||
onClick={() => {
|
|
||||||
setSelectedRoleId(
|
|
||||||
webSocketContext.AllUsers.find(
|
|
||||||
(user) => user.Id === record.key
|
|
||||||
).RoleId
|
|
||||||
);
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
Change role
|
|
||||||
</Link>
|
|
||||||
</Popconfirm>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{console.log(
|
|
||||||
webSocketContext.User.RoleId,
|
|
||||||
webSocketContext.AllRoles.find(
|
|
||||||
(role) => role.Id === webSocketContext.User.RoleId
|
(role) => role.Id === webSocketContext.User.RoleId
|
||||||
).SortingOrder,
|
).SortingOrder <
|
||||||
|
webSocketContext.AllRoles.find(
|
||||||
|
(role) => role.Id === record._roleId
|
||||||
|
).SortingOrder ||
|
||||||
|
webSocketContext.AllRoles.find(
|
||||||
|
(role) => role.Id === webSocketContext.User.RoleId
|
||||||
|
).Master) && (
|
||||||
|
<Popconfirm
|
||||||
|
title="Change role to"
|
||||||
|
okText="Change"
|
||||||
|
onConfirm={() => onRoleChangeConfirm(record.key)}
|
||||||
|
okButtonProps={{
|
||||||
|
disabled:
|
||||||
|
selectedRoleId ===
|
||||||
|
webSocketContext.AllUsers.find(
|
||||||
|
(user) => user.Id === record.key
|
||||||
|
).RoleId,
|
||||||
|
}}
|
||||||
|
description={
|
||||||
|
<Select
|
||||||
|
style={{ width: 250 }}
|
||||||
|
getPopupContainer={(node) => node.parentNode}
|
||||||
|
defaultValue={
|
||||||
|
webSocketContext.AllUsers.find(
|
||||||
|
(user) => user.Id === record.key
|
||||||
|
).RoleId
|
||||||
|
}
|
||||||
|
value={selectedRoleId}
|
||||||
|
onChange={(e) => setSelectedRoleId(e)}
|
||||||
|
>
|
||||||
|
{webSocketContext.AllRoles.map((role) => {
|
||||||
|
if (
|
||||||
|
webSocketContext.AllRoles.find(
|
||||||
|
(role) => role.Id === webSocketContext.User.RoleId
|
||||||
|
).Master ||
|
||||||
|
webSocketContext.AllRoles.find(
|
||||||
|
(role) => role.Id === webSocketContext.User.RoleId
|
||||||
|
).SortingOrder < role.SortingOrder
|
||||||
|
) {
|
||||||
|
return (
|
||||||
|
<Select.Option key={role.Id}>
|
||||||
|
{role.DisplayName}
|
||||||
|
</Select.Option>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
webSocketContext.AllRoles.find(
|
return null;
|
||||||
(role) => role.Id === record._roleId
|
})}
|
||||||
).SortingOrder
|
</Select>
|
||||||
)}
|
}
|
||||||
|
>
|
||||||
|
<Link
|
||||||
|
to="#"
|
||||||
|
onClick={() => {
|
||||||
|
setSelectedRoleId(
|
||||||
|
webSocketContext.AllUsers.find(
|
||||||
|
(user) => user.Id === record.key
|
||||||
|
).RoleId
|
||||||
|
);
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Change role
|
||||||
|
</Link>
|
||||||
|
</Popconfirm>
|
||||||
|
)}
|
||||||
|
|
||||||
{hasPermission(
|
{hasPermission(
|
||||||
webSocketContext.User.Permissions,
|
webSocketContext.User.Permissions,
|
||||||
Constants.PERMISSIONS.ALL_USERS.ACTION.DELETE_USER
|
Constants.PERMISSIONS.ALL_USERS.ACTION.DELETE_USER
|
||||||
) &&
|
) &&
|
||||||
webSocketContext.AllRoles.find(
|
(webSocketContext.AllRoles.find(
|
||||||
(role) => role.Id === webSocketContext.User.RoleId
|
(role) => role.Id === webSocketContext.User.RoleId
|
||||||
).SortingOrder <
|
).SortingOrder <
|
||||||
webSocketContext.AllRoles.find(
|
webSocketContext.AllRoles.find(
|
||||||
(role) => role.Id === record._roleId
|
(role) => role.Id === record._roleId
|
||||||
).SortingOrder && (
|
).SortingOrder ||
|
||||||
|
webSocketContext.AllRoles.find(
|
||||||
|
(role) => role.Id === webSocketContext.User.RoleId
|
||||||
|
).Master) && (
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
placement="top"
|
placement="top"
|
||||||
okText="Delete user"
|
okText="Delete user"
|
||||||
|
|
Loading…
Reference in New Issue