react-antd-admin-panel
Version:
Modern TypeScript-first React admin panel builder with Ant Design 6
39 lines (38 loc) • 1.12 kB
JavaScript
;
const jsxRuntime = require("react/jsx-runtime");
const useAccess = require("./useAccess-Bu6PpWEB.cjs");
function AccessGuard({
children,
fallback = null,
role,
roles,
permission,
permissions,
feature,
level = 1,
requireAuth
}) {
const access = useAccess.useAccess();
const needsAuth = requireAuth ?? (role !== void 0 || roles !== void 0 || permission !== void 0 || permissions !== void 0 || feature !== void 0);
if (needsAuth && !access.isAuthenticated) {
return fallback;
}
if (role !== void 0 && !access.hasRole(role)) {
return fallback;
}
if (roles !== void 0 && !access.hasAnyRole(roles)) {
return fallback;
}
if (permission !== void 0 && !access.hasPermission(permission)) {
return fallback;
}
if (permissions !== void 0 && !access.hasAllPermissions(permissions)) {
return fallback;
}
if (feature !== void 0 && !access.hasFeature(feature, level)) {
return fallback;
}
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children });
}
exports.AccessGuard = AccessGuard;
//# sourceMappingURL=Protected-Cf9XjIbv.cjs.map