permission handling
parent
92bc08e511
commit
7300a0e107
|
@ -52,9 +52,10 @@ export default function AppRoutes() {
|
||||||
|
|
||||||
{hasOnePermission(
|
{hasOnePermission(
|
||||||
webSocketContext.User.Permissions,
|
webSocketContext.User.Permissions,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.ADD_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.CREATE_NEW_ROLE,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE,
|
||||||
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.MOVE_ROLE_UP_DOWN
|
||||||
) && <Route path="/admin-area/roles" element={<AdminAreaRoles />} />}
|
) && <Route path="/admin-area/roles" element={<AdminAreaRoles />} />}
|
||||||
|
|
||||||
{hasPermission(
|
{hasPermission(
|
||||||
|
|
|
@ -85,9 +85,10 @@ export default function SideMenu({ userSession, setUserSession }) {
|
||||||
if (
|
if (
|
||||||
hasOnePermission(
|
hasOnePermission(
|
||||||
webSocketContext.User.Permissions,
|
webSocketContext.User.Permissions,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.ADD_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.CREATE_NEW_ROLE,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE,
|
||||||
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.MOVE_ROLE_UP_DOWN,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.LOGS
|
Constants.PERMISSIONS.ADMIN_AREA.LOGS
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
@ -101,9 +102,10 @@ export default function SideMenu({ userSession, setUserSession }) {
|
||||||
if (
|
if (
|
||||||
hasOnePermission(
|
hasOnePermission(
|
||||||
webSocketContext.User.Permissions,
|
webSocketContext.User.Permissions,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.ADD_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.CREATE_NEW_ROLE,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
|
||||||
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE,
|
||||||
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.MOVE_ROLE_UP_DOWN
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
adminArea.children.push({
|
adminArea.children.push({
|
||||||
|
|
|
@ -15,6 +15,7 @@ import {
|
||||||
MyAvatar,
|
MyAvatar,
|
||||||
SentMessagesCommands,
|
SentMessagesCommands,
|
||||||
WebSocketContext,
|
WebSocketContext,
|
||||||
|
hasPermission,
|
||||||
} from "../../../utils";
|
} from "../../../utils";
|
||||||
import {
|
import {
|
||||||
ArrowDownOutlined,
|
ArrowDownOutlined,
|
||||||
|
@ -120,23 +121,28 @@ export default function AdminAreaRoles() {
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|
||||||
<div
|
{hasPermission(
|
||||||
style={{
|
webSocketContext.User.Permissions,
|
||||||
display: "flex",
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.CREATE_NEW_ROLE
|
||||||
justifyContent: "center",
|
) && (
|
||||||
}}
|
<div
|
||||||
>
|
style={{
|
||||||
<Popconfirm
|
display: "flex",
|
||||||
placement="top"
|
justifyContent: "center",
|
||||||
okText="Create"
|
}}
|
||||||
title="Are you sure you want to create a new role?"
|
|
||||||
onConfirm={() => onCreateNewRoleClick()}
|
|
||||||
>
|
>
|
||||||
<Button shape="round" icon={<PlusOutlined />} size="large">
|
<Popconfirm
|
||||||
Create new role
|
placement="top"
|
||||||
</Button>
|
okText="Create"
|
||||||
</Popconfirm>
|
title="Are you sure you want to create a new role?"
|
||||||
</div>
|
onConfirm={() => onCreateNewRoleClick()}
|
||||||
|
>
|
||||||
|
<Button shape="round" icon={<PlusOutlined />} size="large">
|
||||||
|
Create new role
|
||||||
|
</Button>
|
||||||
|
</Popconfirm>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</Space>
|
</Space>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -361,54 +367,71 @@ 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">
|
||||||
{role.Master || getUsersInRole().length > 0 ? (
|
{hasPermission(
|
||||||
<DeleteOutlined
|
webSocketContext.User.Permissions,
|
||||||
style={{
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE
|
||||||
color: "rgba(0, 0, 0, 0.25)",
|
) ? (
|
||||||
cursor: "not-allowed",
|
role.Master || getUsersInRole().length > 0 ? (
|
||||||
}}
|
<DeleteOutlined
|
||||||
/>
|
style={{
|
||||||
) : (
|
color: "rgba(0, 0, 0, 0.25)",
|
||||||
<Popconfirm
|
cursor: "not-allowed",
|
||||||
title="Delete role"
|
}}
|
||||||
description="Are you sure to delete this role?"
|
/>
|
||||||
icon={<QuestionCircleOutlined style={{ color: "red" }} />}
|
) : (
|
||||||
onConfirm={() => onDeleteClick()}
|
<Popconfirm
|
||||||
>
|
title="Delete role"
|
||||||
<Tooltip title="Delete">
|
description="Are you sure to delete this role?"
|
||||||
<DeleteOutlined />
|
icon={<QuestionCircleOutlined style={{ color: "red" }} />}
|
||||||
</Tooltip>
|
onConfirm={() => onDeleteClick()}
|
||||||
</Popconfirm>
|
>
|
||||||
)}
|
<Tooltip title="Delete">
|
||||||
|
<DeleteOutlined />
|
||||||
|
</Tooltip>
|
||||||
|
</Popconfirm>
|
||||||
|
)
|
||||||
|
) : null}
|
||||||
|
|
||||||
{role.SortingOrder === 0 ? (
|
{hasPermission(
|
||||||
<ArrowUpOutlined
|
webSocketContext.User.Permissions,
|
||||||
style={{
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.MOVE_ROLE_UP_DOWN
|
||||||
color: "rgba(0, 0, 0, 0.25)",
|
) ? (
|
||||||
cursor: "not-allowed",
|
<>
|
||||||
}}
|
{role.SortingOrder === 0 ? (
|
||||||
/>
|
<ArrowUpOutlined
|
||||||
) : (
|
style={{
|
||||||
<Tooltip title="Move role up">
|
color: "rgba(0, 0, 0, 0.25)",
|
||||||
<ArrowUpOutlined onClick={() => onMoveUpClick()} />
|
cursor: "not-allowed",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Tooltip title="Move role up">
|
||||||
|
<ArrowUpOutlined onClick={() => onMoveUpClick()} />
|
||||||
|
</Tooltip>
|
||||||
|
)}
|
||||||
|
{role.SortingOrder === getMaxRoleSortingOrder() ? (
|
||||||
|
<ArrowDownOutlined
|
||||||
|
style={{
|
||||||
|
color: "rgba(0, 0, 0, 0.25)",
|
||||||
|
cursor: "not-allowed",
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Tooltip title="Move role down">
|
||||||
|
<ArrowDownOutlined onClick={() => onMoveDownClick()} />
|
||||||
|
</Tooltip>
|
||||||
|
)}
|
||||||
|
</>
|
||||||
|
) : null}
|
||||||
|
|
||||||
|
{hasPermission(
|
||||||
|
webSocketContext.User.Permissions,
|
||||||
|
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE
|
||||||
|
) && (
|
||||||
|
<Tooltip title="Save">
|
||||||
|
<SaveOutlined onClick={() => onSaveClick()} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
)}
|
)}
|
||||||
{role.SortingOrder === getMaxRoleSortingOrder() ? (
|
|
||||||
<ArrowDownOutlined
|
|
||||||
style={{
|
|
||||||
color: "rgba(0, 0, 0, 0.25)",
|
|
||||||
cursor: "not-allowed",
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<Tooltip title="Move role down">
|
|
||||||
<ArrowDownOutlined onClick={() => onMoveDownClick()} />
|
|
||||||
</Tooltip>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Tooltip title="Save">
|
|
||||||
<SaveOutlined onClick={() => onSaveClick()} />
|
|
||||||
</Tooltip>
|
|
||||||
<Tooltip title="Close">
|
<Tooltip title="Close">
|
||||||
<CloseOutlined onClick={() => onCloseClick()} />
|
<CloseOutlined onClick={() => onCloseClick()} />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
|
|
|
@ -59,9 +59,10 @@ export const Constants = {
|
||||||
},
|
},
|
||||||
ADMIN_AREA: {
|
ADMIN_AREA: {
|
||||||
ROLES: {
|
ROLES: {
|
||||||
ADD_ROLE: "admin_area.roles.add_role",
|
CREATE_NEW_ROLE: "admin_area.roles.create_new_role",
|
||||||
UPDATE_ROLE: "admin_area.roles.update_role",
|
UPDATE_ROLE: "admin_area.roles.update_role",
|
||||||
DELETE_ROLE: "admin_area.roles.delete_role",
|
DELETE_ROLE: "admin_area.roles.delete_role",
|
||||||
|
MOVE_ROLE_UP_DOWN: "admin_area.roles.move_role_up_down",
|
||||||
},
|
},
|
||||||
LOGS: "admin_area.logs",
|
LOGS: "admin_area.logs",
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue