@boomerang-io/carbon-addons-boomerang-react
Version:
Carbon Addons for Boomerang apps
21 lines (18 loc) • 913 B
JavaScript
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 };