42 lines
1.3 KiB
JavaScript
42 lines
1.3 KiB
JavaScript
import {NextLinkComposed} from "@/core/components/LinkRouting";
|
|
import Message from "@/core/components/Messages";
|
|
import useUser from "@/lib/app/hooks/useUser";
|
|
import {Button, Typography} from "@mui/material";
|
|
import {useTranslations} from "next-intl";
|
|
|
|
const UserTypeMiddleware = ({children, user_type}) => {
|
|
const {user} = useUser();
|
|
const t = useTranslations();
|
|
|
|
const userPermission = user.type_id === user_type;
|
|
|
|
if (!userPermission) {
|
|
return (
|
|
<Message
|
|
text={
|
|
<Typography sx={{textAlign: "center"}}>
|
|
{t("Permission.typography_you_dont_have_access")}
|
|
</Typography>
|
|
}
|
|
actions={
|
|
<>
|
|
<Button
|
|
variant="contained"
|
|
component={NextLinkComposed}
|
|
to={{
|
|
pathname: "/dashboard",
|
|
}}
|
|
>
|
|
{t("Permission.button_back_dashboard")}
|
|
</Button>
|
|
</>
|
|
}
|
|
/>
|
|
);
|
|
}
|
|
|
|
return <>{children}</>;
|
|
};
|
|
|
|
export default UserTypeMiddleware;
|