permission check

main
alex 2023-10-17 19:52:36 +02:00
parent 1029e6ebd6
commit 2b199cd15c
4 changed files with 138 additions and 82 deletions

View File

@ -254,7 +254,7 @@ export default function AppRoutes() {
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS
Constants.PERMISSIONS.ROBOTICS.ROBOTS.VIEW
) && (
<Route
path={Constants.ROUTE_PATHS.ROBOTICS_ROBOTS}

View File

@ -153,7 +153,7 @@ export default function SideMenu({
if (
hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS
Constants.PERMISSIONS.ROBOTICS.ROBOTS.VIEW
)
) {
let roboticsGroup = {

View File

@ -15,6 +15,8 @@ import { useEffect, useRef, useState } from "react";
import {
Constants,
FormatDatetime,
hasOnePermission,
hasPermission,
myFetch,
myFetchContentType,
} from "../../../utils";
@ -26,6 +28,7 @@ import {
PlusOutlined,
} from "@ant-design/icons";
import { MyCopyIcon, MyShowHiddenIcon } from "../../../Components/MyIcon";
import { useAppContext } from "../../../Contexts/AppContext";
const ReceivedSSECommands = {
UpdateRobotStatus: 1,
@ -52,6 +55,7 @@ function getRobotTypeString(type) {
export default function Robots() {
const { t } = useTranslation();
const appContext = useAppContext();
const [notificationApi, notificationContextHolder] =
notification.useNotification();
@ -162,7 +166,15 @@ export default function Robots() {
</>
),
},
{
];
if (
hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.VIEW_ROBOTS_ADDRESSES
)
) {
items.push({
title: t("robotics.robots.column.address"),
dataIndex: "address",
key: "address",
@ -178,7 +190,10 @@ export default function Robots() {
<MyCopyIcon notificationApi={notificationApi} text={text} />
</Space>
),
},
});
}
items.push(
{
title: t("robotics.robots.column.connectedAt"),
dataIndex: "connectedAt",
@ -193,13 +208,26 @@ export default function Robots() {
title: t("robotics.robots.column.createdAt"),
dataIndex: "createdAt",
key: "createdAt",
},
{
}
);
if (
hasOnePermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.EDIT_ROBOT_NAME,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.DISCONNECT_ROBOT
)
) {
items.push({
title: t("robotics.robots.column.actions"),
dataIndex: "actions",
key: "actions",
render: (_, record) => (
<Space size="middle">
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.EDIT_ROBOT_NAME
) && (
<Popconfirm
placement="left"
title={t("robotics.robots.popconfirmEdit.title")}
@ -249,7 +277,12 @@ export default function Robots() {
{t("common.text.edit")}
</Link>
</Popconfirm>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.DISCONNECT_ROBOT
) && (
<Popconfirm
placement="left"
title={t("robotics.robots.popconfirmDisconnect.title")}
@ -271,10 +304,11 @@ export default function Robots() {
>
<Link to="#">{t("common.text.disconnect")}</Link>
</Popconfirm>
)}
</Space>
),
},
];
});
}
return items;
};
@ -335,7 +369,15 @@ export default function Robots() {
dataIndex: "firmwareVersion",
key: "firmwareVersion",
},
{
];
if (
hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.AUTHORIZE_DENY_UNAUTHORIZED_ROBOTS
)
) {
items.push({
title: t("robotics.robots.column.actions"),
dataIndex: "actions",
key: "actions",
@ -386,8 +428,8 @@ export default function Robots() {
</Popconfirm>
</Space>
),
},
];
});
}
return items;
};
@ -689,6 +731,12 @@ export default function Robots() {
</Typography.Title>
<Button
disabled={
!hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.ENABLE_PERMIT_JOIN
)
}
onClick={() => {
console.log("click");
myFetch(

View File

@ -179,7 +179,15 @@ export const Constants = {
VIEW: "consoles.view",
},
ROBOTICS: {
ROBOTS: "robotics.view",
ROBOTS: {
VIEW: "robotics.robots.view",
VIEW_ROBOTS_ADDRESSES: "robotics.robots.view_robots_addresses",
EDIT_ROBOT_NAME: "robotics.robots.edit_robot_name",
DISCONNECT_ROBOT: "robotics.robots.disconnect_robot",
ENABLE_PERMIT_JOIN: "robotics.robots.enable_permit_join",
AUTHORIZE_DENY_UNAUTHORIZED_ROBOTS:
"robotics.robots.authorize_deny_unauthorized_robots",
},
},
},
SYSTEM_LOG_TYPE: {