@zeniai/client-epic-state 4.10.60 → 4.10.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/lib/entity/tenant/tenantPayload.d.ts +7 -8
  2. package/lib/entity/userRole/userRolePayload.d.ts +7 -8
  3. package/lib/entity/userRole/userRolePayload.js +14 -17
  4. package/lib/entity/userRole/userRoleType.d.ts +8 -7
  5. package/lib/entity/userRole/userRoleType.js +109 -74
  6. package/lib/index.d.ts +4 -4
  7. package/lib/index.js +27 -23
  8. package/lib/view/accountList/fetchAccountListEpic.js +1 -1
  9. package/lib/view/accountMappingView/fetchAccountListForAccountTypesEpic.js +4 -1
  10. package/lib/view/apAgingView/apAgingReport/fetchApAgingEpic.js +1 -1
  11. package/lib/view/onboardingView/cockpitView/types/onboardingCockpitViewTypes.d.ts +3 -3
  12. package/lib/view/onboardingView/cockpitView/types/onboardingCockpitViewTypes.js +1 -0
  13. package/lib/view/people/helpers/updateManagersListOnRoleChange.js +5 -2
  14. package/lib/view/people/initializeEditPersonEpic.js +1 -1
  15. package/lib/view/people/invitePeopleEpic.js +10 -7
  16. package/lib/view/people/inviteZeniPeopleEpic.js +12 -8
  17. package/lib/view/people/peoplePayload.d.ts +3 -3
  18. package/lib/view/people/peopleSaveUpdatesEpic.js +2 -9
  19. package/lib/view/people/peopleState.d.ts +1 -1
  20. package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.d.ts +2 -2
  21. package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +4 -1
  22. package/lib/view/recommendation/recommendationReducer.d.ts +2 -1
  23. package/lib/view/recommendation/recommendationReducer.js +2 -1
  24. package/lib/view/settingsView/epic/fetchBankAccountsListEpic.js +1 -1
  25. package/lib/view/settingsView/settingsViewHelpers.js +1 -1
  26. package/lib/view/spendManagement/helpers.js +2 -2
  27. package/lib/view/spendManagement/reimbursement/remiListView/remiListSelector.js +3 -3
  28. package/lib/view/spendManagement/spendManagementFilterHelpers.js +2 -1
  29. package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +2 -2
  30. package/lib/view/transactionDetail/transactionDetailReducer.d.ts +9 -1
  31. package/lib/view/transactionDetail/transactionDetailReducer.js +42 -2
  32. package/lib/view/transactionDetail/transactionDetailSelector.d.ts +1 -1
  33. package/lib/view/transactionDetail/transactionDetailState.js +4 -0
  34. package/lib/view/transactionDetail/transactionDetailTypes.d.ts +2 -1
  35. package/lib/view/vendorList/vendorListSelector.js +2 -2
  36. package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorFirstReviewViewEpic.js +5 -3
  37. package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.d.ts +1 -1
  38. package/package.json +1 -1
@@ -22,10 +22,10 @@ interface TenantPayload {
22
22
  is_banking_enabled: boolean;
23
23
  is_spend_management_enabled: boolean;
24
24
  is_admin: boolean;
25
- is_full: boolean;
26
- is_lite: boolean;
25
+ is_bookkeeping_admin: boolean;
26
+ is_bookkeeping_user: boolean;
27
27
  is_banker: boolean;
28
- is_investor: boolean;
28
+ is_investor_or_banker: boolean;
29
29
  is_company_officer: boolean;
30
30
  is_controller: boolean;
31
31
  is_customer_success_manager: boolean;
@@ -33,15 +33,14 @@ interface TenantPayload {
33
33
  is_preparer: boolean;
34
34
  is_reviewer: boolean;
35
35
  is_tax_lead: boolean;
36
- is_employee: boolean;
36
+ is_reimbursements_user: boolean;
37
37
  is_bill_pay_admin: boolean;
38
- is_bill_pay_analyst: boolean;
39
- is_bill_pay_approver: boolean;
38
+ is_bill_pay_user: boolean;
40
39
  is_charge_card_admin: boolean;
41
40
  is_charge_card_user: boolean;
42
- is_reimbursement_admin: boolean;
41
+ is_reimbursements_admin: boolean;
43
42
  is_deposit_accounts_admin: boolean;
44
- is_deposit_accounts_analyst: boolean;
43
+ is_deposit_accounts_user: boolean;
45
44
  is_deleted: boolean;
46
45
  is_zeni: boolean;
47
46
  is_invite_accepted: boolean;
@@ -36,10 +36,10 @@ export interface UserRolePayload {
36
36
  is_invite_accepted: boolean;
37
37
  is_invited: boolean;
38
38
  is_admin: boolean;
39
- is_full: boolean;
40
- is_lite: boolean;
39
+ is_bookkeeping_admin: boolean;
40
+ is_bookkeeping_user: boolean;
41
41
  is_banker: boolean;
42
- is_investor: boolean;
42
+ is_investor_or_banker: boolean;
43
43
  is_company_officer: boolean;
44
44
  is_controller: boolean;
45
45
  is_customer_success_manager: boolean;
@@ -47,15 +47,14 @@ export interface UserRolePayload {
47
47
  is_preparer: boolean;
48
48
  is_reviewer: boolean;
49
49
  is_tax_lead: boolean;
50
- is_employee: boolean;
50
+ is_reimbursements_user: boolean;
51
51
  is_bill_pay_admin: boolean;
52
- is_bill_pay_analyst: boolean;
53
- is_bill_pay_approver: boolean;
52
+ is_bill_pay_user: boolean;
54
53
  is_charge_card_admin: boolean;
55
54
  is_charge_card_user: boolean;
56
- is_reimbursement_admin: boolean;
55
+ is_reimbursements_admin: boolean;
57
56
  is_deposit_accounts_admin: boolean;
58
- is_deposit_accounts_analyst: boolean;
57
+ is_deposit_accounts_user: boolean;
59
58
  is_deleted: boolean;
60
59
  is_zeni: boolean;
61
60
  user_verification_status: {
@@ -7,13 +7,13 @@ function getUserRoles(userRolePayload) {
7
7
  if (userRolePayload.is_admin === true) {
8
8
  roles.push('admin');
9
9
  }
10
- if (userRolePayload.is_full === true) {
11
- roles.push('full');
10
+ if (userRolePayload.is_bookkeeping_admin === true) {
11
+ roles.push('bookkeeping_admin');
12
12
  }
13
- if (userRolePayload.is_lite === true) {
14
- roles.push('lite');
13
+ if (userRolePayload.is_bookkeeping_user === true) {
14
+ roles.push('bookkeeping_user');
15
15
  }
16
- if (userRolePayload.is_investor === true ||
16
+ if (userRolePayload.is_investor_or_banker === true ||
17
17
  userRolePayload.is_banker === true) {
18
18
  roles.push('investor_or_banker');
19
19
  }
@@ -38,20 +38,17 @@ function getUserRoles(userRolePayload) {
38
38
  if (userRolePayload.is_reviewer === true) {
39
39
  roles.push('reviewer');
40
40
  }
41
- if (userRolePayload.is_employee === true) {
42
- roles.push('employee');
41
+ if (userRolePayload.is_reimbursements_user === true) {
42
+ roles.push('reimbursements_user');
43
43
  }
44
- if (userRolePayload.is_reimbursement_admin === true) {
45
- roles.push('reimbursement_admin');
44
+ if (userRolePayload.is_reimbursements_admin === true) {
45
+ roles.push('reimbursements_admin');
46
46
  }
47
47
  if (userRolePayload.is_bill_pay_admin === true) {
48
48
  roles.push('bill_pay_admin');
49
49
  }
50
- if (userRolePayload.is_bill_pay_analyst === true) {
51
- roles.push('bill_pay_analyst');
52
- }
53
- if (userRolePayload.is_bill_pay_approver === true) {
54
- roles.push('bill_pay_approver');
50
+ if (userRolePayload.is_bill_pay_user === true) {
51
+ roles.push('bill_pay_user');
55
52
  }
56
53
  if (userRolePayload.is_charge_card_user === true) {
57
54
  roles.push('charge_card_user');
@@ -62,12 +59,12 @@ function getUserRoles(userRolePayload) {
62
59
  if (userRolePayload.is_deposit_accounts_admin === true) {
63
60
  roles.push('deposit_accounts_admin');
64
61
  }
65
- if (userRolePayload.is_deposit_accounts_analyst === true) {
66
- roles.push('deposit_accounts_analyst');
62
+ if (userRolePayload.is_deposit_accounts_user === true) {
63
+ roles.push('deposit_accounts_user');
67
64
  }
68
65
  if (roles.length === 0) {
69
66
  // Default fallback.. Ideally shouldn't happen in PROD
70
- roles.push('lite');
67
+ roles.push('bookkeeping_user');
71
68
  }
72
69
  return roles;
73
70
  }
@@ -4,21 +4,22 @@ export declare const FINOPS_USER_ROLES: readonly ["controller", "tax_lead", "ap_
4
4
  export declare const toFinOpsUserRoleTypeStrict: (v?: string | undefined) => "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager" | undefined;
5
5
  export declare const toFinOpsUserRoleType: (v: string) => "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager";
6
6
  export declare type FinOpsUserRoleType = ReturnType<typeof toFinOpsUserRoleType>;
7
- export declare const ALL_USER_ROLES: readonly ["admin", "full", "lite", "investor_or_banker", "company_officer", "employee", "bill_pay_admin", "bill_pay_analyst", "bill_pay_approver", "reimbursement_admin", "deposit_accounts_admin", "deposit_accounts_analyst", "charge_card_admin", "charge_card_user", "controller", "tax_lead", "ap_analyst", "preparer", "reviewer", "customer_success_manager"];
8
- export declare const toUserRoleTypeStrict: (v?: string | undefined) => "full" | "admin" | "lite" | "investor_or_banker" | "company_officer" | "employee" | "bill_pay_admin" | "bill_pay_analyst" | "bill_pay_approver" | "reimbursement_admin" | "deposit_accounts_admin" | "deposit_accounts_analyst" | "charge_card_admin" | "charge_card_user" | "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager" | undefined;
9
- export declare const toUserRoleType: (v: string) => "full" | "admin" | "lite" | "investor_or_banker" | "company_officer" | "employee" | "bill_pay_admin" | "bill_pay_analyst" | "bill_pay_approver" | "reimbursement_admin" | "deposit_accounts_admin" | "deposit_accounts_analyst" | "charge_card_admin" | "charge_card_user" | "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager";
7
+ export declare const ALL_USER_ROLES: readonly ["admin", "bookkeeping_admin", "bookkeeping_user", "investor_or_banker", "company_officer", "reimbursements_user", "bill_pay_admin", "bill_pay_user", "reimbursements_admin", "deposit_accounts_admin", "deposit_accounts_user", "charge_card_admin", "charge_card_user", "controller", "tax_lead", "ap_analyst", "preparer", "reviewer", "customer_success_manager"];
8
+ export declare const toUserRoleTypeStrict: (v?: string | undefined) => "admin" | "bookkeeping_admin" | "bookkeeping_user" | "investor_or_banker" | "company_officer" | "reimbursements_user" | "bill_pay_admin" | "bill_pay_user" | "reimbursements_admin" | "deposit_accounts_admin" | "deposit_accounts_user" | "charge_card_admin" | "charge_card_user" | "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager" | undefined;
9
+ export declare const toUserRoleType: (v: string) => "admin" | "bookkeeping_admin" | "bookkeeping_user" | "investor_or_banker" | "company_officer" | "reimbursements_user" | "bill_pay_admin" | "bill_pay_user" | "reimbursements_admin" | "deposit_accounts_admin" | "deposit_accounts_user" | "charge_card_admin" | "charge_card_user" | "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager";
10
10
  export declare type UserRoleType = ReturnType<typeof toUserRoleType>;
11
11
  export declare type RoleMap = Record<string, boolean>;
12
12
  export declare const isFinOpsUserRoleType: (userRole: UserRoleType) => boolean;
13
13
  export declare const hasAdminLevelAccess: (roles: UserRoleType[]) => boolean;
14
14
  export declare const hasBillPayFallbackAdminLevelAccess: (currentTenant: TenantView) => boolean;
15
15
  export declare const hasRemiFallbackAdminLevelAccess: (currentTenant: TenantView) => boolean;
16
- export declare const hasEmployeeLevelAccess: (currentTenant: TenantView) => boolean;
16
+ export declare const hasReimbursementUserAccess: (currentTenant: TenantView) => boolean;
17
17
  export declare const hasSuperAdminLevelAccess: (userRoles: UserRoleType[]) => boolean;
18
- export declare const hasFullLevelAccess: (userRoles: UserRoleType[]) => boolean;
19
- export declare const hasLiteLevelAccess: (userRoles: UserRoleType[]) => boolean;
18
+ export declare const hasBookKeepingAdminLevelAccess: (userRoles: UserRoleType[]) => boolean;
19
+ export declare const hasBookKeepingUserLevelAccess: (userRoles: UserRoleType[]) => boolean;
20
20
  export declare const isNonZeniRole: (role: UserRoleType) => boolean;
21
21
  export declare const hasInvestorBankerLevelAccess: (role: UserRoleType | UserRoleType[]) => boolean;
22
+ export declare const hasEmployeeLevelAccess: (role: UserRoleType | UserRoleType[]) => boolean;
22
23
  export declare const getUserRoleMap: (userRoles: UserRoleType[]) => RoleMap;
23
24
  export declare const hasOnlyBillPayAccess: (userRoleMap?: RoleMap | undefined) => boolean;
24
25
  export declare const hasZeniRoleOrCompanyOfficerAccess: (role: UserRoleType) => boolean;
@@ -36,7 +37,7 @@ export declare const hasChargeCardAdminLevelAccess: (userRoleMap?: RoleMap | und
36
37
  export declare const hasZeniAccountsAdminLevelAccess: (userRoleMap?: RoleMap | undefined) => boolean;
37
38
  export declare const hasSpendManagementAccess: (userRoleMap?: RoleMap | undefined) => boolean;
38
39
  export declare const hasSpendManagementAdminLevelAccess: (userRoleMap: RoleMap) => boolean;
39
- export declare const hasAnyCompanyRole: (userRole?: ("full" | "admin" | "lite" | "investor_or_banker" | "company_officer" | "employee" | "bill_pay_admin" | "bill_pay_analyst" | "bill_pay_approver" | "reimbursement_admin" | "deposit_accounts_admin" | "deposit_accounts_analyst" | "charge_card_admin" | "charge_card_user" | "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager")[] | undefined) => boolean;
40
+ export declare const hasAnyCompanyRole: (userRole?: ("admin" | "bookkeeping_admin" | "bookkeeping_user" | "investor_or_banker" | "company_officer" | "reimbursements_user" | "bill_pay_admin" | "bill_pay_user" | "reimbursements_admin" | "deposit_accounts_admin" | "deposit_accounts_user" | "charge_card_admin" | "charge_card_user" | "controller" | "tax_lead" | "ap_analyst" | "preparer" | "reviewer" | "customer_success_manager")[] | undefined) => boolean;
40
41
  export declare const hasAnyFinOpRole: (userRoleMap?: RoleMap | undefined) => boolean;
41
42
  export declare const hasAnyAdminLevelAccess: (userRoleMap?: RoleMap | undefined) => boolean;
42
43
  export declare const hasFullOrAdminLevelAccess: (userRoles: UserRoleType[]) => boolean;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasAnySpendManagementTOSAccepted = exports.hasZeniAccountsAccessible = exports.hasChargeCardAccessible = exports.hasReimbursementAccessible = exports.hasBillPayAccessible = exports.hasFullOrAdminLevelAccess = exports.hasAnyAdminLevelAccess = exports.hasAnyFinOpRole = exports.hasAnyCompanyRole = exports.hasSpendManagementAdminLevelAccess = exports.hasSpendManagementAccess = exports.hasZeniAccountsAdminLevelAccess = exports.hasChargeCardAdminLevelAccess = exports.hasReimbursementAdminLevelAccess = exports.hasBillPayAdminLevelAccess = exports.hasZeniAccountsAccess = exports.hasChargeCardAccess = exports.hasReimbursementAccess = exports.hasBillPayAccess = exports.hasOnlyZeniAccountsAccess = exports.hasOnlyChargeCardAccess = exports.hasOnlyReimbursementAccess = exports.isZeniSignedInUser = exports.hasZeniRoleOrCompanyOfficerAccess = exports.hasOnlyBillPayAccess = exports.getUserRoleMap = exports.hasInvestorBankerLevelAccess = exports.isNonZeniRole = exports.hasLiteLevelAccess = exports.hasFullLevelAccess = exports.hasSuperAdminLevelAccess = exports.hasEmployeeLevelAccess = exports.hasRemiFallbackAdminLevelAccess = exports.hasBillPayFallbackAdminLevelAccess = exports.hasAdminLevelAccess = exports.isFinOpsUserRoleType = exports.toUserRoleType = exports.toUserRoleTypeStrict = exports.ALL_USER_ROLES = exports.toFinOpsUserRoleType = exports.toFinOpsUserRoleTypeStrict = exports.FINOPS_USER_ROLES = void 0;
3
+ exports.hasAnySpendManagementTOSAccepted = exports.hasZeniAccountsAccessible = exports.hasChargeCardAccessible = exports.hasReimbursementAccessible = exports.hasBillPayAccessible = exports.hasFullOrAdminLevelAccess = exports.hasAnyAdminLevelAccess = exports.hasAnyFinOpRole = exports.hasAnyCompanyRole = exports.hasSpendManagementAdminLevelAccess = exports.hasSpendManagementAccess = exports.hasZeniAccountsAdminLevelAccess = exports.hasChargeCardAdminLevelAccess = exports.hasReimbursementAdminLevelAccess = exports.hasBillPayAdminLevelAccess = exports.hasZeniAccountsAccess = exports.hasChargeCardAccess = exports.hasReimbursementAccess = exports.hasBillPayAccess = exports.hasOnlyZeniAccountsAccess = exports.hasOnlyChargeCardAccess = exports.hasOnlyReimbursementAccess = exports.isZeniSignedInUser = exports.hasZeniRoleOrCompanyOfficerAccess = exports.hasOnlyBillPayAccess = exports.getUserRoleMap = exports.hasEmployeeLevelAccess = exports.hasInvestorBankerLevelAccess = exports.isNonZeniRole = exports.hasBookKeepingUserLevelAccess = exports.hasBookKeepingAdminLevelAccess = exports.hasSuperAdminLevelAccess = exports.hasReimbursementUserAccess = exports.hasRemiFallbackAdminLevelAccess = exports.hasBillPayFallbackAdminLevelAccess = exports.hasAdminLevelAccess = exports.isFinOpsUserRoleType = exports.toUserRoleType = exports.toUserRoleTypeStrict = exports.ALL_USER_ROLES = exports.toFinOpsUserRoleType = exports.toFinOpsUserRoleTypeStrict = exports.FINOPS_USER_ROLES = void 0;
4
4
  const stringToUnion_1 = require("../../commonStateTypes/stringToUnion");
5
5
  exports.FINOPS_USER_ROLES = [
6
6
  'controller',
@@ -16,17 +16,16 @@ const toFinOpsUserRoleType = (v) => (0, stringToUnion_1.stringToUnion)(v, export
16
16
  exports.toFinOpsUserRoleType = toFinOpsUserRoleType;
17
17
  exports.ALL_USER_ROLES = [
18
18
  'admin',
19
- 'full',
20
- 'lite',
19
+ 'bookkeeping_admin',
20
+ 'bookkeeping_user',
21
21
  'investor_or_banker',
22
22
  'company_officer',
23
- 'employee',
23
+ 'reimbursements_user',
24
24
  'bill_pay_admin',
25
- 'bill_pay_analyst',
26
- 'bill_pay_approver',
27
- 'reimbursement_admin',
25
+ 'bill_pay_user',
26
+ 'reimbursements_admin',
28
27
  'deposit_accounts_admin',
29
- 'deposit_accounts_analyst',
28
+ 'deposit_accounts_user',
30
29
  'charge_card_admin',
31
30
  'charge_card_user',
32
31
  ...exports.FINOPS_USER_ROLES,
@@ -77,8 +76,8 @@ const hasRemiFallbackAdminLevelAccess = (currentTenant) => {
77
76
  }
78
77
  };
79
78
  exports.hasRemiFallbackAdminLevelAccess = hasRemiFallbackAdminLevelAccess;
80
- const hasEmployeeLevelAccess = (currentTenant) => {
81
- const isEmployee = Boolean(currentTenant.userRole.includes('employee'));
79
+ const hasReimbursementUserAccess = (currentTenant) => {
80
+ const isReimbursementUser = Boolean(currentTenant.userRole.includes('reimbursements_user'));
82
81
  const isZeniDomain = Boolean(currentTenant.tenantEmailDomain === 'zeni.ai');
83
82
  const isZeni = currentTenant.isZeni;
84
83
  /**
@@ -90,34 +89,42 @@ const hasEmployeeLevelAccess = (currentTenant) => {
90
89
  * If zeni user has both billpay access and employee then return true to show reimbursements also.
91
90
  */
92
91
  const isZeniUserHasBillPayAccess = currentTenant.userRole.includes('bill_pay_admin') ||
93
- currentTenant.userRole.includes('bill_pay_analyst') ||
94
- currentTenant.userRole.includes('bill_pay_approver');
95
- return isZeniUserHasBillPayAccess && isEmployee ? true : isEmployee;
92
+ currentTenant.userRole.includes('bill_pay_user');
93
+ return isZeniUserHasBillPayAccess && isReimbursementUser
94
+ ? true
95
+ : isReimbursementUser;
96
96
  }
97
- return isEmployee;
97
+ return isReimbursementUser;
98
98
  };
99
- exports.hasEmployeeLevelAccess = hasEmployeeLevelAccess;
99
+ exports.hasReimbursementUserAccess = hasReimbursementUserAccess;
100
100
  const hasSuperAdminLevelAccess = (userRoles) => {
101
101
  return userRoles.includes('admin');
102
102
  };
103
103
  exports.hasSuperAdminLevelAccess = hasSuperAdminLevelAccess;
104
- const hasFullLevelAccess = (userRoles) => {
105
- return userRoles.includes('full');
104
+ const hasBookKeepingAdminLevelAccess = (userRoles) => {
105
+ return userRoles.includes('bookkeeping_admin');
106
106
  };
107
- exports.hasFullLevelAccess = hasFullLevelAccess;
108
- const hasLiteLevelAccess = (userRoles) => {
109
- return userRoles.includes('lite');
107
+ exports.hasBookKeepingAdminLevelAccess = hasBookKeepingAdminLevelAccess;
108
+ const hasBookKeepingUserLevelAccess = (userRoles) => {
109
+ return userRoles.includes('bookkeeping_user');
110
110
  };
111
- exports.hasLiteLevelAccess = hasLiteLevelAccess;
111
+ exports.hasBookKeepingUserLevelAccess = hasBookKeepingUserLevelAccess;
112
112
  const isNonZeniRole = (role) => {
113
113
  const nonZeniRoles = [
114
- 'lite',
115
- 'full',
114
+ 'bookkeeping_user',
115
+ 'bookkeeping_admin',
116
116
  'admin',
117
117
  'investor_or_banker',
118
118
  'banker',
119
- 'employee',
119
+ 'reimbursements_user',
120
120
  'company_officer',
121
+ 'bill_pay_admin',
122
+ 'bill_pay_user',
123
+ 'reimbursements_admin',
124
+ 'deposit_accounts_admin',
125
+ 'deposit_accounts_user',
126
+ 'charge_card_admin',
127
+ 'charge_card_user',
121
128
  ];
122
129
  return nonZeniRoles.includes(role);
123
130
  };
@@ -134,6 +141,39 @@ const hasInvestorBankerLevelAccess = (role) => {
134
141
  return false;
135
142
  };
136
143
  exports.hasInvestorBankerLevelAccess = hasInvestorBankerLevelAccess;
144
+ const hasEmployeeLevelAccess = (role) => {
145
+ const employeeRoles = [
146
+ 'bookkeeping_user',
147
+ 'bookkeeping_admin',
148
+ 'reimbursements_admin',
149
+ 'reimbursements_user',
150
+ 'bill_pay_admin',
151
+ 'bill_pay_user',
152
+ 'deposit_accounts_admin',
153
+ 'deposit_accounts_user',
154
+ 'charge_card_admin',
155
+ 'charge_card_user',
156
+ ];
157
+ if (Boolean(role) === true) {
158
+ if (Array.isArray(role)) {
159
+ // Create a hash set and insert all elements of employeeRoles
160
+ const employeeRolesSet = new Set(employeeRoles);
161
+ // Check each element of role in the hash set
162
+ for (const item of role) {
163
+ if (!employeeRolesSet.has(item)) {
164
+ return false;
165
+ }
166
+ }
167
+ // If all elements of role are found in the hash set
168
+ return true;
169
+ }
170
+ else {
171
+ return employeeRoles.includes(role);
172
+ }
173
+ }
174
+ return false;
175
+ };
176
+ exports.hasEmployeeLevelAccess = hasEmployeeLevelAccess;
137
177
  const getUserRoleMap = (userRoles) => {
138
178
  var _a;
139
179
  const roleMap = (_a = userRoles === null || userRoles === void 0 ? void 0 : userRoles.reduce((roleMap, currRole) => {
@@ -148,20 +188,18 @@ const hasOnlyBillPayAccess = (userRoleMap) => {
148
188
  return false;
149
189
  }
150
190
  if (userRoleMap.admin ||
151
- userRoleMap.full ||
152
- userRoleMap.lite ||
191
+ userRoleMap.bookkeeping_admin ||
192
+ userRoleMap.bookkeeping_user ||
153
193
  userRoleMap.investor_or_banker ||
154
- userRoleMap.reimbursement_admin ||
155
- userRoleMap.employee ||
194
+ userRoleMap.reimbursements_admin ||
195
+ userRoleMap.reimbursements_user ||
156
196
  userRoleMap.deposit_accounts_admin ||
157
- userRoleMap.deposit_accounts_analyst ||
197
+ userRoleMap.deposit_accounts_user ||
158
198
  userRoleMap.charge_card_admin ||
159
199
  userRoleMap.charge_card_user) {
160
200
  return false;
161
201
  }
162
- else if (userRoleMap.bill_pay_admin ||
163
- userRoleMap.bill_pay_approver ||
164
- userRoleMap.bill_pay_analyst) {
202
+ else if (userRoleMap.bill_pay_admin || userRoleMap.bill_pay_user) {
165
203
  return true;
166
204
  }
167
205
  return false;
@@ -187,19 +225,19 @@ const hasOnlyReimbursementAccess = (userRoleMap) => {
187
225
  return false;
188
226
  }
189
227
  if (userRoleMap.admin ||
190
- userRoleMap.full ||
191
- userRoleMap.lite ||
228
+ userRoleMap.bookkeeping_admin ||
229
+ userRoleMap.bookkeeping_user ||
192
230
  userRoleMap.investor_or_banker ||
193
- userRoleMap.charge_card_admin ||
194
- userRoleMap.charge_card_user ||
195
- userRoleMap.deposit_accounts_admin ||
196
- userRoleMap.deposit_accounts_analyst ||
197
231
  userRoleMap.bill_pay_admin ||
198
- userRoleMap.bill_pay_approver ||
199
- userRoleMap.bill_pay_analyst) {
232
+ userRoleMap.bill_pay_user ||
233
+ userRoleMap.deposit_accounts_admin ||
234
+ userRoleMap.deposit_accounts_user ||
235
+ userRoleMap.charge_card_admin ||
236
+ userRoleMap.charge_card_user) {
200
237
  return false;
201
238
  }
202
- else if (userRoleMap.reimbursement_admin || userRoleMap.employee) {
239
+ else if (userRoleMap.reimbursements_admin ||
240
+ userRoleMap.reimbursements_user) {
203
241
  return true;
204
242
  }
205
243
  return false;
@@ -210,16 +248,15 @@ const hasOnlyChargeCardAccess = (userRoleMap) => {
210
248
  return false;
211
249
  }
212
250
  if (userRoleMap.admin ||
213
- userRoleMap.full ||
214
- userRoleMap.lite ||
251
+ userRoleMap.bookkeeping_admin ||
252
+ userRoleMap.bookkeeping_user ||
215
253
  userRoleMap.investor_or_banker ||
216
- userRoleMap.reimbursement_admin ||
217
- userRoleMap.employee ||
218
- userRoleMap.deposit_accounts_admin ||
219
- userRoleMap.deposit_accounts_analyst ||
220
254
  userRoleMap.bill_pay_admin ||
221
- userRoleMap.bill_pay_approver ||
222
- userRoleMap.bill_pay_analyst) {
255
+ userRoleMap.bill_pay_user ||
256
+ userRoleMap.deposit_accounts_admin ||
257
+ userRoleMap.deposit_accounts_user ||
258
+ userRoleMap.reimbursements_admin ||
259
+ userRoleMap.reimbursements_user) {
223
260
  return false;
224
261
  }
225
262
  else if (userRoleMap.charge_card_admin || userRoleMap.charge_card_user) {
@@ -233,20 +270,19 @@ const hasOnlyZeniAccountsAccess = (userRoleMap) => {
233
270
  return false;
234
271
  }
235
272
  if (userRoleMap.admin ||
236
- userRoleMap.full ||
237
- userRoleMap.lite ||
273
+ userRoleMap.bookkeeping_admin ||
274
+ userRoleMap.bookkeeping_user ||
238
275
  userRoleMap.investor_or_banker ||
239
- userRoleMap.reimbursement_admin ||
240
- userRoleMap.employee ||
276
+ userRoleMap.bill_pay_admin ||
277
+ userRoleMap.bill_pay_user ||
241
278
  userRoleMap.charge_card_admin ||
242
279
  userRoleMap.charge_card_user ||
243
- userRoleMap.bill_pay_admin ||
244
- userRoleMap.bill_pay_approver ||
245
- userRoleMap.bill_pay_analyst) {
280
+ userRoleMap.reimbursements_admin ||
281
+ userRoleMap.reimbursements_user) {
246
282
  return false;
247
283
  }
248
284
  else if (userRoleMap.deposit_accounts_admin ||
249
- userRoleMap.deposit_accounts_analyst) {
285
+ userRoleMap.deposit_accounts_user) {
250
286
  return true;
251
287
  }
252
288
  return false;
@@ -258,10 +294,9 @@ const hasBillPayAccess = (userRoleMap) => {
258
294
  }
259
295
  if (userRoleMap.admin ||
260
296
  userRoleMap.bill_pay_admin ||
261
- userRoleMap.bill_pay_analyst ||
262
- userRoleMap.bill_pay_approver ||
263
- userRoleMap.full ||
264
- userRoleMap.lite ||
297
+ userRoleMap.bill_pay_user ||
298
+ userRoleMap.bookkeeping_admin ||
299
+ userRoleMap.bookkeeping_user ||
265
300
  (0, exports.hasAnyFinOpRole)(userRoleMap)) {
266
301
  return true;
267
302
  }
@@ -273,10 +308,10 @@ const hasReimbursementAccess = (userRoleMap) => {
273
308
  return false;
274
309
  }
275
310
  if (userRoleMap.admin ||
276
- userRoleMap.reimbursement_admin ||
277
- userRoleMap.employee ||
278
- userRoleMap.full ||
279
- userRoleMap.lite ||
311
+ userRoleMap.reimbursements_admin ||
312
+ userRoleMap.reimbursements_user ||
313
+ userRoleMap.bookkeeping_admin ||
314
+ userRoleMap.bookkeeping_user ||
280
315
  (0, exports.hasAnyFinOpRole)(userRoleMap)) {
281
316
  return true;
282
317
  }
@@ -301,7 +336,7 @@ const hasZeniAccountsAccess = (userRoleMap) => {
301
336
  }
302
337
  if (userRoleMap.admin ||
303
338
  userRoleMap.deposit_accounts_admin ||
304
- userRoleMap.deposit_accounts_analyst ||
339
+ userRoleMap.deposit_accounts_user ||
305
340
  (0, exports.hasAnyFinOpRole)(userRoleMap)) {
306
341
  return true;
307
342
  }
@@ -314,7 +349,7 @@ const hasBillPayAdminLevelAccess = (userRoleMap) => {
314
349
  }
315
350
  if (userRoleMap.admin ||
316
351
  userRoleMap.bill_pay_admin ||
317
- userRoleMap.full ||
352
+ userRoleMap.bookkeeping_admin ||
318
353
  (0, exports.hasAnyFinOpRole)(userRoleMap)) {
319
354
  return true;
320
355
  }
@@ -326,8 +361,8 @@ const hasReimbursementAdminLevelAccess = (userRoleMap) => {
326
361
  return false;
327
362
  }
328
363
  if (userRoleMap.admin ||
329
- userRoleMap.reimbursement_admin ||
330
- userRoleMap.full ||
364
+ userRoleMap.reimbursements_admin ||
365
+ userRoleMap.bookkeeping_admin ||
331
366
  (0, exports.hasAnyFinOpRole)(userRoleMap)) {
332
367
  return true;
333
368
  }
@@ -376,8 +411,8 @@ const hasAnyCompanyRole = (userRole) => {
376
411
  return false;
377
412
  }
378
413
  return ((0, exports.hasAdminLevelAccess)(userRole) ||
379
- (0, exports.hasFullLevelAccess)(userRole) ||
380
- (0, exports.hasLiteLevelAccess)(userRole) ||
414
+ (0, exports.hasBookKeepingAdminLevelAccess)(userRole) ||
415
+ (0, exports.hasBookKeepingUserLevelAccess)(userRole) ||
381
416
  (0, exports.hasInvestorBankerLevelAccess)(userRole));
382
417
  };
383
418
  exports.hasAnyCompanyRole = hasAnyCompanyRole;
@@ -401,9 +436,9 @@ const hasAnyAdminLevelAccess = (userRoleMap) => {
401
436
  return false;
402
437
  }
403
438
  if (userRoleMap.admin ||
404
- userRoleMap.full ||
439
+ userRoleMap.bookkeeping_admin ||
405
440
  userRoleMap.bill_pay_admin ||
406
- userRoleMap.reimbursement_admin ||
441
+ userRoleMap.reimbursements_admin ||
407
442
  userRoleMap.deposit_accounts_admin ||
408
443
  userRoleMap.charge_card_admin ||
409
444
  (0, exports.hasAnyFinOpRole)(userRoleMap)) {
@@ -413,7 +448,7 @@ const hasAnyAdminLevelAccess = (userRoleMap) => {
413
448
  };
414
449
  exports.hasAnyAdminLevelAccess = hasAnyAdminLevelAccess;
415
450
  const hasFullOrAdminLevelAccess = (userRoles) => {
416
- return (0, exports.hasFullLevelAccess)(userRoles) || (0, exports.hasAdminLevelAccess)(userRoles);
451
+ return ((0, exports.hasBookKeepingAdminLevelAccess)(userRoles) || (0, exports.hasAdminLevelAccess)(userRoles));
417
452
  };
418
453
  exports.hasFullOrAdminLevelAccess = hasFullOrAdminLevelAccess;
419
454
  const hasBillPayAccessible = (currentTenant, userRoleMap) => {
package/lib/index.d.ts CHANGED
@@ -80,8 +80,8 @@ export { getForecast };
80
80
  export type { User } from './entity/user/userState';
81
81
  import { getUserRoleByUserId, getUserRoleByUserIds } from './entity/userRole/userRoleSelector';
82
82
  export type { UserRole, InvitationStatus } from './entity/userRole/userRoleState';
83
- import { UserRoleType, toUserRoleType, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasEmployeeLevelAccess, isNonZeniRole, hasInvestorBankerLevelAccess, RoleMap, getUserRoleMap, hasOnlyBillPayAccess, hasZeniRoleOrCompanyOfficerAccess, hasSuperAdminLevelAccess, hasFullLevelAccess, hasLiteLevelAccess, hasBillPayFallbackAdminLevelAccess, hasRemiFallbackAdminLevelAccess, hasOnlyReimbursementAccess, hasOnlyChargeCardAccess, hasOnlyZeniAccountsAccess, isZeniSignedInUser, hasChargeCardAccess, hasZeniAccountsAccess, hasBillPayAccess, hasReimbursementAccess, hasReimbursementAdminLevelAccess, hasBillPayAdminLevelAccess, hasChargeCardAdminLevelAccess, hasSpendManagementAccess, hasSpendManagementAdminLevelAccess, hasZeniAccountsAdminLevelAccess, hasAnyCompanyRole, hasAnyFinOpRole, hasBillPayAccessible, hasReimbursementAccessible } from './entity/userRole/userRoleType';
84
- export { UserRoleType, toUserRoleType, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasEmployeeLevelAccess, hasFullLevelAccess, hasLiteLevelAccess, isNonZeniRole, hasInvestorBankerLevelAccess, RoleMap, getUserRoleMap, hasOnlyBillPayAccess, hasZeniRoleOrCompanyOfficerAccess, hasSuperAdminLevelAccess, hasBillPayFallbackAdminLevelAccess, hasRemiFallbackAdminLevelAccess, hasOnlyReimbursementAccess, hasOnlyChargeCardAccess, hasOnlyZeniAccountsAccess, isZeniSignedInUser, getUserRoleByUserId, getUserRoleByUserIds, hasChargeCardAccess, hasZeniAccountsAccess, hasBillPayAccess, hasReimbursementAccess, hasReimbursementAdminLevelAccess, hasBillPayAdminLevelAccess, hasChargeCardAdminLevelAccess, hasSpendManagementAccess, hasSpendManagementAdminLevelAccess, hasZeniAccountsAdminLevelAccess, hasAnyCompanyRole, hasAnyFinOpRole, hasBillPayAccessible, hasReimbursementAccessible, };
83
+ import { UserRoleType, toUserRoleType, toUserRoleTypeStrict, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasReimbursementUserAccess, hasEmployeeLevelAccess, isNonZeniRole, hasInvestorBankerLevelAccess, RoleMap, getUserRoleMap, hasOnlyBillPayAccess, hasZeniRoleOrCompanyOfficerAccess, hasSuperAdminLevelAccess, hasBookKeepingAdminLevelAccess, hasBookKeepingUserLevelAccess, hasBillPayFallbackAdminLevelAccess, hasRemiFallbackAdminLevelAccess, hasOnlyReimbursementAccess, hasOnlyChargeCardAccess, hasOnlyZeniAccountsAccess, isZeniSignedInUser, hasChargeCardAccess, hasZeniAccountsAccess, hasBillPayAccess, hasReimbursementAccess, hasReimbursementAdminLevelAccess, hasBillPayAdminLevelAccess, hasChargeCardAdminLevelAccess, hasSpendManagementAccess, hasSpendManagementAdminLevelAccess, hasZeniAccountsAdminLevelAccess, hasAnyCompanyRole, hasAnyFinOpRole, hasBillPayAccessible, hasReimbursementAccessible } from './entity/userRole/userRoleType';
84
+ export { UserRoleType, toUserRoleType, toUserRoleTypeStrict, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasReimbursementUserAccess, hasEmployeeLevelAccess, hasBookKeepingAdminLevelAccess, hasBookKeepingUserLevelAccess, isNonZeniRole, hasInvestorBankerLevelAccess, RoleMap, getUserRoleMap, hasOnlyBillPayAccess, hasZeniRoleOrCompanyOfficerAccess, hasSuperAdminLevelAccess, hasBillPayFallbackAdminLevelAccess, hasRemiFallbackAdminLevelAccess, hasOnlyReimbursementAccess, hasOnlyChargeCardAccess, hasOnlyZeniAccountsAccess, isZeniSignedInUser, getUserRoleByUserId, getUserRoleByUserIds, hasChargeCardAccess, hasZeniAccountsAccess, hasBillPayAccess, hasReimbursementAccess, hasReimbursementAdminLevelAccess, hasBillPayAdminLevelAccess, hasChargeCardAdminLevelAccess, hasSpendManagementAccess, hasSpendManagementAdminLevelAccess, hasZeniAccountsAdminLevelAccess, hasAnyCompanyRole, hasAnyFinOpRole, hasBillPayAccessible, hasReimbursementAccessible, };
85
85
  import { SectionClassesViewReportV2, NestedClassReportV2 } from './entity/sectionClassesViewV2/sectionClassesViewSelectorTypes';
86
86
  import { SectionClassesView as SectionClassesViewV2 } from './entity/sectionClassesViewV2/sectionClassesView';
87
87
  export { SectionClassesViewReportV2, NestedClassReportV2, SectionClassesViewV2 };
@@ -216,8 +216,8 @@ export { clearTransactionList, updateLatestTransactionId, parallelFetchAccountTr
216
216
  import { TransactionListByAccountReport, getTransactionListByAccount, getTransactionListUIStateByAccountKey } from './view/transactionList/transactionListByAccountSelector';
217
217
  export { TransactionListByAccountReport, getTransactionListByAccount, getTransactionListUIStateByAccountKey, };
218
218
  import { TransactionUpdates, getThirdPartyIdFromTransactionId } from './view/transactionDetail/transactionDetailState';
219
- import { fetchTransactionDetail, updateTransactionDetail, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, uploadMissingReceiptSuccess, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity } from './view/transactionDetail/transactionDetailReducer';
220
- export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, };
219
+ import { fetchTransactionDetail, updateTransactionDetail, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, uploadMissingReceiptSuccess, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked } from './view/transactionDetail/transactionDetailReducer';
220
+ export { fetchEntityTransactionList, updateTransactionListByEntity, saveTransactionDetailLocalData, clearTransactionDetailSaveStatus, updateTransactionListByEntityFailure, resetLineItemsCategoryClassInLocalData, setAllLineItemsToCategoryClassInLocalData, saveTransactionDetail, setAllLineItemsLocalDataIsUpdateAllChecked, initializeTransactionDetailLocalData, removeEntityRecommendationForLineIdForTransactionDetail, updateSelectedVendor, resetVendor, updateLocalDataWithTransactionsUpdateWithVendorCheckbox, updateVendorToAllLineItems, resetAllLineItemsToVendor, updateLatestSelectedEntity, updateVendorBulkRecommendationsFetchStatus, setIsVendorUpdateAllChecked, };
221
221
  export { TransactionUpdates, fetchTransactionDetail, updateTransactionDetail, uploadMissingReceiptSuccess, getThirdPartyIdFromTransactionId, };
222
222
  import { TransactionListByEntityView, getTransactionListByEntity, getTransactionListByEntityForSinglePeriod } from './view/transactionList/transactionListByEntitySelector';
223
223
  export { TransactionListByEntityView, getTransactionListByEntity };