UNPKG

infinity-forge

Version:
31 lines 1.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.usePermission = usePermission; exports.Permission = Permission; var jsx_runtime_1 = require("react/jsx-runtime"); var context_1 = require("../../context.js"); function usePermission(props) { var _a, _b, _c; var _d = (0, context_1.useAuthAdmin)(), user = _d.user, roleUser = _d.roleUser; var userRoles = Array.isArray(user === null || user === void 0 ? void 0 : user.roles) && (user === null || user === void 0 ? void 0 : user.roles.length) > 0 ? user === null || user === void 0 ? void 0 : user.roles : [roleUser]; var hasRolesProps = Array.isArray(props === null || props === void 0 ? void 0 : props.roles) && ((_a = props === null || props === void 0 ? void 0 : props.roles) === null || _a === void 0 ? void 0 : _a.length); var hasClaimsProps = Array.isArray(props === null || props === void 0 ? void 0 : props.claims) && ((_b = props.claims) === null || _b === void 0 ? void 0 : _b.length); var hasRole = hasRolesProps ? (_c = userRoles === null || userRoles === void 0 ? void 0 : userRoles.some(function (role) { return props.roles.includes(role); })) !== null && _c !== void 0 ? _c : false : true; var hasClaim = hasClaimsProps ? props.claims.some(function (c) { return user === null || user === void 0 ? void 0 : user.claims.includes(c); }) : true; var hasAccess = hasRolesProps && hasClaimsProps ? hasRole && hasClaim : hasRolesProps ? hasRole : hasClaimsProps ? hasClaim : true; return { hasAccess: hasAccess }; } function Permission(props) { var hasAccess = usePermission(props).hasAccess; if (!hasAccess) { return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}); } return props.children; } //# sourceMappingURL=index.js.map