UNPKG

@boomerang-io/carbon-addons-boomerang-react

Version:
21 lines (18 loc) 913 B
import React from 'react'; import { Route } from 'react-router-dom'; import Error403 from '../Error403/Error403.js'; /* IBM Confidential 694970X, 69497O0 © Copyright IBM Corp. 2022, 2024 */ const checkAuth = (userRole, allowedUserRoles) => { if (Array.isArray(userRole)) { return userRole.some((role) => allowedUserRoles.some((allowedRole) => allowedRole === role)); } return allowedUserRoles.some((allowedRole) => allowedRole === userRole); }; function ProtectedRoute({ allowedUserRoles, component, message = "If you think you should be, contact your friendly neighborhood platform admin.", title = "Sorry mate, you are not allowed here.", userRole, ...rest }) { return (React.createElement(Route, { ...rest }, checkAuth(userRole, allowedUserRoles) ? component : React.createElement(Error403, { message: message, title: title }))); } export { ProtectedRoute as default };