@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.
- package/lib/entity/tenant/tenantPayload.d.ts +7 -8
- package/lib/entity/userRole/userRolePayload.d.ts +7 -8
- package/lib/entity/userRole/userRolePayload.js +14 -17
- package/lib/entity/userRole/userRoleType.d.ts +8 -7
- package/lib/entity/userRole/userRoleType.js +109 -74
- package/lib/index.d.ts +4 -4
- package/lib/index.js +27 -23
- package/lib/view/accountList/fetchAccountListEpic.js +1 -1
- package/lib/view/accountMappingView/fetchAccountListForAccountTypesEpic.js +4 -1
- package/lib/view/apAgingView/apAgingReport/fetchApAgingEpic.js +1 -1
- package/lib/view/onboardingView/cockpitView/types/onboardingCockpitViewTypes.d.ts +3 -3
- package/lib/view/onboardingView/cockpitView/types/onboardingCockpitViewTypes.js +1 -0
- package/lib/view/people/helpers/updateManagersListOnRoleChange.js +5 -2
- package/lib/view/people/initializeEditPersonEpic.js +1 -1
- package/lib/view/people/invitePeopleEpic.js +10 -7
- package/lib/view/people/inviteZeniPeopleEpic.js +12 -8
- package/lib/view/people/peoplePayload.d.ts +3 -3
- package/lib/view/people/peopleSaveUpdatesEpic.js +2 -9
- package/lib/view/people/peopleState.d.ts +1 -1
- package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.d.ts +2 -2
- package/lib/view/recommendation/fetchEntityRecommendationsByTransactionIdEpic.js +4 -1
- package/lib/view/recommendation/recommendationReducer.d.ts +2 -1
- package/lib/view/recommendation/recommendationReducer.js +2 -1
- package/lib/view/settingsView/epic/fetchBankAccountsListEpic.js +1 -1
- package/lib/view/settingsView/settingsViewHelpers.js +1 -1
- package/lib/view/spendManagement/helpers.js +2 -2
- package/lib/view/spendManagement/reimbursement/remiListView/remiListSelector.js +3 -3
- package/lib/view/spendManagement/spendManagementFilterHelpers.js +2 -1
- package/lib/view/transactionDetail/transactionDetailLocalDataHelper.js +2 -2
- package/lib/view/transactionDetail/transactionDetailReducer.d.ts +9 -1
- package/lib/view/transactionDetail/transactionDetailReducer.js +42 -2
- package/lib/view/transactionDetail/transactionDetailSelector.d.ts +1 -1
- package/lib/view/transactionDetail/transactionDetailState.js +4 -0
- package/lib/view/transactionDetail/transactionDetailTypes.d.ts +2 -1
- package/lib/view/vendorList/vendorListSelector.js +2 -2
- package/lib/view/vendorReviewView/vendorFirstReviewView/epics/saveVendorFirstReviewViewEpic.js +5 -3
- package/lib/view/vendorReviewView/vendorFirstReviewView/vendorFirstReviewViewPayload.d.ts +1 -1
- 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
|
-
|
|
26
|
-
|
|
25
|
+
is_bookkeeping_admin: boolean;
|
|
26
|
+
is_bookkeeping_user: boolean;
|
|
27
27
|
is_banker: boolean;
|
|
28
|
-
|
|
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
|
-
|
|
36
|
+
is_reimbursements_user: boolean;
|
|
37
37
|
is_bill_pay_admin: boolean;
|
|
38
|
-
|
|
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
|
-
|
|
41
|
+
is_reimbursements_admin: boolean;
|
|
43
42
|
is_deposit_accounts_admin: boolean;
|
|
44
|
-
|
|
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
|
-
|
|
40
|
-
|
|
39
|
+
is_bookkeeping_admin: boolean;
|
|
40
|
+
is_bookkeeping_user: boolean;
|
|
41
41
|
is_banker: boolean;
|
|
42
|
-
|
|
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
|
-
|
|
50
|
+
is_reimbursements_user: boolean;
|
|
51
51
|
is_bill_pay_admin: boolean;
|
|
52
|
-
|
|
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
|
-
|
|
55
|
+
is_reimbursements_admin: boolean;
|
|
57
56
|
is_deposit_accounts_admin: boolean;
|
|
58
|
-
|
|
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.
|
|
11
|
-
roles.push('
|
|
10
|
+
if (userRolePayload.is_bookkeeping_admin === true) {
|
|
11
|
+
roles.push('bookkeeping_admin');
|
|
12
12
|
}
|
|
13
|
-
if (userRolePayload.
|
|
14
|
-
roles.push('
|
|
13
|
+
if (userRolePayload.is_bookkeeping_user === true) {
|
|
14
|
+
roles.push('bookkeeping_user');
|
|
15
15
|
}
|
|
16
|
-
if (userRolePayload.
|
|
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.
|
|
42
|
-
roles.push('
|
|
41
|
+
if (userRolePayload.is_reimbursements_user === true) {
|
|
42
|
+
roles.push('reimbursements_user');
|
|
43
43
|
}
|
|
44
|
-
if (userRolePayload.
|
|
45
|
-
roles.push('
|
|
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.
|
|
51
|
-
roles.push('
|
|
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.
|
|
66
|
-
roles.push('
|
|
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('
|
|
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", "
|
|
8
|
-
export declare const toUserRoleTypeStrict: (v?: string | undefined) => "
|
|
9
|
-
export declare const toUserRoleType: (v: string) => "
|
|
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
|
|
16
|
+
export declare const hasReimbursementUserAccess: (currentTenant: TenantView) => boolean;
|
|
17
17
|
export declare const hasSuperAdminLevelAccess: (userRoles: UserRoleType[]) => boolean;
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
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?: ("
|
|
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.
|
|
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
|
-
'
|
|
20
|
-
'
|
|
19
|
+
'bookkeeping_admin',
|
|
20
|
+
'bookkeeping_user',
|
|
21
21
|
'investor_or_banker',
|
|
22
22
|
'company_officer',
|
|
23
|
-
'
|
|
23
|
+
'reimbursements_user',
|
|
24
24
|
'bill_pay_admin',
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
'reimbursement_admin',
|
|
25
|
+
'bill_pay_user',
|
|
26
|
+
'reimbursements_admin',
|
|
28
27
|
'deposit_accounts_admin',
|
|
29
|
-
'
|
|
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
|
|
81
|
-
const
|
|
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('
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
currentTenant.userRole.includes('bill_pay_user');
|
|
93
|
+
return isZeniUserHasBillPayAccess && isReimbursementUser
|
|
94
|
+
? true
|
|
95
|
+
: isReimbursementUser;
|
|
96
96
|
}
|
|
97
|
-
return
|
|
97
|
+
return isReimbursementUser;
|
|
98
98
|
};
|
|
99
|
-
exports.
|
|
99
|
+
exports.hasReimbursementUserAccess = hasReimbursementUserAccess;
|
|
100
100
|
const hasSuperAdminLevelAccess = (userRoles) => {
|
|
101
101
|
return userRoles.includes('admin');
|
|
102
102
|
};
|
|
103
103
|
exports.hasSuperAdminLevelAccess = hasSuperAdminLevelAccess;
|
|
104
|
-
const
|
|
105
|
-
return userRoles.includes('
|
|
104
|
+
const hasBookKeepingAdminLevelAccess = (userRoles) => {
|
|
105
|
+
return userRoles.includes('bookkeeping_admin');
|
|
106
106
|
};
|
|
107
|
-
exports.
|
|
108
|
-
const
|
|
109
|
-
return userRoles.includes('
|
|
107
|
+
exports.hasBookKeepingAdminLevelAccess = hasBookKeepingAdminLevelAccess;
|
|
108
|
+
const hasBookKeepingUserLevelAccess = (userRoles) => {
|
|
109
|
+
return userRoles.includes('bookkeeping_user');
|
|
110
110
|
};
|
|
111
|
-
exports.
|
|
111
|
+
exports.hasBookKeepingUserLevelAccess = hasBookKeepingUserLevelAccess;
|
|
112
112
|
const isNonZeniRole = (role) => {
|
|
113
113
|
const nonZeniRoles = [
|
|
114
|
-
'
|
|
115
|
-
'
|
|
114
|
+
'bookkeeping_user',
|
|
115
|
+
'bookkeeping_admin',
|
|
116
116
|
'admin',
|
|
117
117
|
'investor_or_banker',
|
|
118
118
|
'banker',
|
|
119
|
-
'
|
|
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.
|
|
152
|
-
userRoleMap.
|
|
191
|
+
userRoleMap.bookkeeping_admin ||
|
|
192
|
+
userRoleMap.bookkeeping_user ||
|
|
153
193
|
userRoleMap.investor_or_banker ||
|
|
154
|
-
userRoleMap.
|
|
155
|
-
userRoleMap.
|
|
194
|
+
userRoleMap.reimbursements_admin ||
|
|
195
|
+
userRoleMap.reimbursements_user ||
|
|
156
196
|
userRoleMap.deposit_accounts_admin ||
|
|
157
|
-
userRoleMap.
|
|
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.
|
|
191
|
-
userRoleMap.
|
|
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.
|
|
199
|
-
userRoleMap.
|
|
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.
|
|
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.
|
|
214
|
-
userRoleMap.
|
|
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.
|
|
222
|
-
userRoleMap.
|
|
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.
|
|
237
|
-
userRoleMap.
|
|
273
|
+
userRoleMap.bookkeeping_admin ||
|
|
274
|
+
userRoleMap.bookkeeping_user ||
|
|
238
275
|
userRoleMap.investor_or_banker ||
|
|
239
|
-
userRoleMap.
|
|
240
|
-
userRoleMap.
|
|
276
|
+
userRoleMap.bill_pay_admin ||
|
|
277
|
+
userRoleMap.bill_pay_user ||
|
|
241
278
|
userRoleMap.charge_card_admin ||
|
|
242
279
|
userRoleMap.charge_card_user ||
|
|
243
|
-
userRoleMap.
|
|
244
|
-
userRoleMap.
|
|
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.
|
|
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.
|
|
262
|
-
userRoleMap.
|
|
263
|
-
userRoleMap.
|
|
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.
|
|
277
|
-
userRoleMap.
|
|
278
|
-
userRoleMap.
|
|
279
|
-
userRoleMap.
|
|
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.
|
|
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.
|
|
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.
|
|
330
|
-
userRoleMap.
|
|
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.
|
|
380
|
-
(0, exports.
|
|
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.
|
|
439
|
+
userRoleMap.bookkeeping_admin ||
|
|
405
440
|
userRoleMap.bill_pay_admin ||
|
|
406
|
-
userRoleMap.
|
|
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.
|
|
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,
|
|
84
|
-
export { UserRoleType, toUserRoleType, isFinOpsUserRoleType, hasAdminLevelAccess, hasFullOrAdminLevelAccess, hasEmployeeLevelAccess,
|
|
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 };
|