delete role
parent
5a953a606f
commit
4da538b838
|
@ -23,6 +23,7 @@ import {
|
||||||
DeleteOutlined,
|
DeleteOutlined,
|
||||||
EditOutlined,
|
EditOutlined,
|
||||||
PlusOutlined,
|
PlusOutlined,
|
||||||
|
QuestionCircleOutlined,
|
||||||
SaveOutlined,
|
SaveOutlined,
|
||||||
} from "@ant-design/icons";
|
} from "@ant-design/icons";
|
||||||
import { useContext, useState } from "react";
|
import { useContext, useState } from "react";
|
||||||
|
@ -303,10 +304,12 @@ function Role({ treeData, role, webSocketContext, notificationApi }) {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getUsersInRole = () => {
|
||||||
|
return webSocketContext.AllUsers.filter((user) => user.RoleId === role.Id);
|
||||||
|
};
|
||||||
|
|
||||||
const UserAvatarsInRole = () => {
|
const UserAvatarsInRole = () => {
|
||||||
const usersInRole = webSocketContext.AllUsers.filter(
|
const usersInRole = getUsersInRole();
|
||||||
(user) => user.RoleId === role.Id
|
|
||||||
);
|
|
||||||
|
|
||||||
if (usersInRole.length > 0) {
|
if (usersInRole.length > 0) {
|
||||||
let avatars = [];
|
let avatars = [];
|
||||||
|
@ -337,6 +340,13 @@ function Role({ treeData, role, webSocketContext, notificationApi }) {
|
||||||
return null;
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onDeleteClick = () => {
|
||||||
|
webSocketContext.SendSocketMessage(
|
||||||
|
SentMessagesCommands.AdminAreaDeleteRole,
|
||||||
|
{ RoleId: role.Id }
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Collapse
|
<Collapse
|
||||||
collapsible={editMode ? "icon" : "header"}
|
collapsible={editMode ? "icon" : "header"}
|
||||||
|
@ -346,9 +356,18 @@ function Role({ treeData, role, webSocketContext, notificationApi }) {
|
||||||
key: "2",
|
key: "2",
|
||||||
extra: editMode ? (
|
extra: editMode ? (
|
||||||
<Space key="spaceedit" style={{ paddingLeft: 10 }} size="small">
|
<Space key="spaceedit" style={{ paddingLeft: 10 }} size="small">
|
||||||
<Tooltip title="Delete">
|
{!role.Master && getUsersInRole().length === 0 && (
|
||||||
<DeleteOutlined />
|
<Popconfirm
|
||||||
</Tooltip>
|
title="Delete role"
|
||||||
|
description="Are you sure to delete this role?"
|
||||||
|
icon={<QuestionCircleOutlined style={{ color: "red" }} />}
|
||||||
|
onConfirm={() => onDeleteClick()}
|
||||||
|
>
|
||||||
|
<Tooltip title="Delete">
|
||||||
|
<DeleteOutlined />
|
||||||
|
</Tooltip>
|
||||||
|
</Popconfirm>
|
||||||
|
)}
|
||||||
<Tooltip title="Move role up">
|
<Tooltip title="Move role up">
|
||||||
<ArrowUpOutlined onClick={() => onMoveUpClick()} />
|
<ArrowUpOutlined onClick={() => onMoveUpClick()} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
29
src/utils.js
29
src/utils.js
|
@ -141,6 +141,7 @@ const ReceivedMessagesCommands = {
|
||||||
AdminAreaNewRoleCreated: 19,
|
AdminAreaNewRoleCreated: 19,
|
||||||
AdminAreaRoleUpdated: 20,
|
AdminAreaRoleUpdated: 20,
|
||||||
AdminAreaUpdateRoleSortingOrder: 21,
|
AdminAreaUpdateRoleSortingOrder: 21,
|
||||||
|
AdminAreaRoleDeleted: 22,
|
||||||
};
|
};
|
||||||
|
|
||||||
// commands sent to the backend server
|
// commands sent to the backend server
|
||||||
|
@ -154,6 +155,7 @@ export const SentMessagesCommands = {
|
||||||
AdminAreaCreateNewRole: 7,
|
AdminAreaCreateNewRole: 7,
|
||||||
AdminAreaUpdateRole: 8,
|
AdminAreaUpdateRole: 8,
|
||||||
AdminAreaUpdateRoleSortingOrder: 9,
|
AdminAreaUpdateRoleSortingOrder: 9,
|
||||||
|
AdminAreaDeleteRole: 10,
|
||||||
};
|
};
|
||||||
|
|
||||||
export function WebSocketProvider({
|
export function WebSocketProvider({
|
||||||
|
@ -648,6 +650,33 @@ export function WebSocketProvider({
|
||||||
return newArr;
|
return newArr;
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
|
case ReceivedMessagesCommands.AdminAreaRoleDeleted:
|
||||||
|
setAllRoles((arr) => {
|
||||||
|
let newArr = [...arr];
|
||||||
|
|
||||||
|
const deletedRole = newArr.find((r) => r.Id === body.RoleId);
|
||||||
|
|
||||||
|
newArr = newArr.filter((role) => role.Id !== body.RoleId);
|
||||||
|
|
||||||
|
for (let i = 0; i < newArr.length; i++) {
|
||||||
|
if (newArr[i].SortingOrder > deletedRole.SortingOrder) {
|
||||||
|
newArr[i].SortingOrder = newArr[i].SortingOrder - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return newArr;
|
||||||
|
});
|
||||||
|
|
||||||
|
setAdminAreaRolesPermissions((arr) => {
|
||||||
|
let newArr = [...arr];
|
||||||
|
|
||||||
|
newArr = newArr.filter(
|
||||||
|
(rolePermission) => rolePermission.RoleId !== body.RoleId
|
||||||
|
);
|
||||||
|
|
||||||
|
return newArr;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
console.error("unknown command", cmd);
|
console.error("unknown command", cmd);
|
||||||
|
|
Loading…
Reference in New Issue