All files / src/components/AcquirerEnterprises/CreateEnterprise/hooks useEnterprisePermissions.tsx

100% Statements 9/9
58.06% Branches 18/31
100% Functions 1/1
100% Lines 9/9

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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76              256x 15055x 15051x 15051x 15051x 15051x     15051x     15051x                                                                                                             15051x    
import { shouldBeHidden } from "@constants/constants";
import useMasqueradeReducer from "@hooks/Reducers/useMasqueradeReducer";
import { useAppSelector } from "@redux/hooks";
import { selectUser } from "@redux/slices/auth/auth";
import { selectEnterpriseConfiguration } from "@redux/slices/enterprise/enterpriseSettings";
import { checkPortals } from "@utils/routing";
 
export const useEnterprisePermissions = () => {
  const auth = useAppSelector(selectUser);
  const configuration = useAppSelector(selectEnterpriseConfiguration);
  const { enterpriseConfiguration } = shouldBeHidden;
  const { isMasqueradeMode } = useMasqueradeReducer();
  const { isEnterprisePortal } = checkPortals();
 
  const isMasqueradeEnterprise =
    isMasqueradeMode && auth?.role === "acquirer" && isEnterprisePortal;
 
  const canAccess =
    auth?.role === "provider" || isMasqueradeEnterprise
      ? {
          ...configuration,
          modify_merchant: enterpriseConfiguration
            ? true
            : configuration.modify_merchant,
          merchant_underwriting: enterpriseConfiguration
            ? false
            : configuration.merchant_underwriting,
          merchant_underwriting_statuses: enterpriseConfiguration
            ? false
            : configuration.merchant_underwriting_statuses,
          agreement_signing: enterpriseConfiguration
            ? true
            : configuration.agreement_signing,
          control_mode: enterpriseConfiguration
            ? true
            : configuration.control_mode,
          b_profile_linking: enterpriseConfiguration
            ? true
            : configuration.b_profile_linking,
          bank_account_linking: enterpriseConfiguration
            ? true
            : configuration.bank_account_linking,
          manage_bank_account: enterpriseConfiguration
            ? true
            : configuration.manage_bank_account,
          money_transfers: enterpriseConfiguration
            ? true
            : configuration.money_transfers,
          risk_monitoring: enterpriseConfiguration
            ? false
            : configuration.risk_monitoring,
          merchant_triggers: enterpriseConfiguration
            ? false
            : configuration.merchant_triggers,
          risk_activity: enterpriseConfiguration
            ? false
            : configuration.risk_activity,
        }
      : {
          modify_merchant: true,
          merchant_underwriting: true,
          merchant_underwriting_statuses: true,
          agreement_signing: true,
          control_mode: true,
          b_profile_linking: true,
          bank_account_linking: true,
          manage_bank_account: true,
          money_transfers: true,
          risk_monitoring: true,
          merchant_triggers: true,
          risk_activity: true,
        };
 
  return canAccess;
};