@boomerang-io/carbon-addons-boomerang-react
Version:
Carbon Addons for Boomerang apps
29 lines (22 loc) • 1.2 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var reactRouterDom = require('react-router-dom');
var Error403 = require('../Error403/Error403.js');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var React__default = /*#__PURE__*/_interopDefault(React);
/*
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__default.default.createElement(reactRouterDom.Route, { ...rest }, checkAuth(userRole, allowedUserRoles) ? component : React__default.default.createElement(Error403.default, { message: message, title: title })));
}
exports.default = ProtectedRoute;