Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 498x 54678x 54678x 80081x 54676x 498x 6316x 6316x 6316x | import RESOURCE_BASE from "@constants/permissions";
import { useAppSelector } from "@redux/hooks";
import { selectIsAllowed } from "@redux/slices/accessControl/accessControl";
import { TAccessControlOperations } from "@redux/slices/accessControl/types";
import { checkPortals } from "@utils/routing";
import { composePermission } from "./utils";
export type TUseAccessControl = {
withPortal?: boolean;
operation: TAccessControlOperations;
resource: string;
};
const useAccessControl = ({
resource,
operation,
withPortal = false,
}: TUseAccessControl) => {
const formattedResource = withPortal
? getPermissionByPortal(resource)
: resource;
const isAllowed = useAppSelector((state) =>
selectIsAllowed(state, { resource: formattedResource, operation }),
);
return isAllowed;
};
const getPermissionByPortal = (resource: string) => {
const { isAcquirerPortal, isEnterprisePortal } = checkPortals();
const PORTAL = isAcquirerPortal
? RESOURCE_BASE.ACQUIRER
: isEnterprisePortal
? RESOURCE_BASE.ENTERPRISE
: RESOURCE_BASE.MERCHANT;
return composePermission(PORTAL, resource);
};
export default useAccessControl;
|