From 855d8fd44d8b6053551a7b8eb128c0659390c3a1 Mon Sep 17 00:00:00 2001 From: gitanjli525 Date: Thu, 3 Oct 2024 17:10:18 +0530 Subject: [PATCH 1/6] chore: add org level invite --- src/screens/UserManagement/UserRevamp/UserInfo.res | 12 ++++++++---- src/screens/UserManagement/UserRevamp/UserUtils.res | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/screens/UserManagement/UserRevamp/UserInfo.res b/src/screens/UserManagement/UserRevamp/UserInfo.res index 35c1e4798..95f7d8062 100644 --- a/src/screens/UserManagement/UserRevamp/UserInfo.res +++ b/src/screens/UserManagement/UserRevamp/UserInfo.res @@ -17,10 +17,7 @@ module UserAction = { ) let decideWhatToShow = { - if value.entityType->UserInfoUtils.entityMapper === #Organization { - // User is at org level - NoActionAccess - } else if userEmail === email { + if userEmail === email { // User cannot update its own role NoActionAccess } else if userPermissionJson.usersManage === NoAccess { @@ -40,6 +37,13 @@ module UserAction = { value.profile.id->Option.isNone ) { ManageUser + } else if ( + // Org level user + value.org.id->Option.getOr("") === orgId && + value.merchant.id->Option.isNone && + value.profile.id->Option.isNone + ) { + ManageUser } else { SwitchUser } diff --git a/src/screens/UserManagement/UserRevamp/UserUtils.res b/src/screens/UserManagement/UserRevamp/UserUtils.res index a691c20b8..8139619f9 100644 --- a/src/screens/UserManagement/UserRevamp/UserUtils.res +++ b/src/screens/UserManagement/UserRevamp/UserUtils.res @@ -200,7 +200,7 @@ let getEntityType = valueDict => { let profileValue = valueDict->getOptionString("profile_value") switch (orgValue, merchantValue, profileValue) { - | (Some(_orgId), Some("all_merchants"), Some("all_profiles")) => "organisation" + | (Some(_orgId), Some("all_merchants"), Some("all_profiles")) => "organization" | (Some(_orgId), Some(_merchnatId), Some("all_profiles")) => "merchant" | (Some(_orgId), Some(_merchnatId), Some(_profileId)) => "profile" | _ => "" From 8a8ba6d6c4068dbf2c2c9e3ad632c243a402ed76 Mon Sep 17 00:00:00 2001 From: gitanjli525 Date: Thu, 3 Oct 2024 17:12:29 +0530 Subject: [PATCH 2/6] chore: add org level invite --- src/screens/UserManagement/UserRevamp/UserManagementHelper.res | 1 + 1 file changed, 1 insertion(+) diff --git a/src/screens/UserManagement/UserRevamp/UserManagementHelper.res b/src/screens/UserManagement/UserRevamp/UserManagementHelper.res index 6e98a492d..e5d992ed8 100644 --- a/src/screens/UserManagement/UserRevamp/UserManagementHelper.res +++ b/src/screens/UserManagement/UserRevamp/UserManagementHelper.res @@ -85,6 +85,7 @@ module MerchantSelection = { ~label="All merchants", ~value="all_merchants", ~dropdownList=merchList, + ~showAllSelection=true, ), ~deselectDisable=true, ~buttonText="Select a Merchant", From 9917e90dd24517dba01d9b01f2f96e2f7e6c2e86 Mon Sep 17 00:00:00 2001 From: gitanjli525 Date: Fri, 4 Oct 2024 11:53:45 +0530 Subject: [PATCH 3/6] chore: add org level invite --- .../UserRevamp/UserManagementHelper.res | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/screens/UserManagement/UserRevamp/UserManagementHelper.res b/src/screens/UserManagement/UserRevamp/UserManagementHelper.res index e5d992ed8..2859811ce 100644 --- a/src/screens/UserManagement/UserRevamp/UserManagementHelper.res +++ b/src/screens/UserManagement/UserRevamp/UserManagementHelper.res @@ -113,10 +113,31 @@ module ProfileSelection = { let internalSwitch = OMPSwitchHooks.useInternalSwitch() let profileList = Recoil.useRecoilValueFromAtom(HyperswitchAtom.profileListAtom) let {userInfo: {userEntity}} = React.useContext(UserInfoProvider.defaultContext) + let form = ReactFinalForm.useForm() + let formState: ReactFinalForm.formState = ReactFinalForm.useFormState( + ReactFinalForm.useFormSubscription(["values"])->Nullable.make, + ) let disableSelect = switch userEntity { | #Profile => true - | #Organization + | #Organization => { + let selected_merchant = + formState.values + ->LogicUtils.getDictFromJsonObject + ->LogicUtils.getString("merchant_value", "") + switch selected_merchant->stringToVariantForAllSelection { + | Some(#All_Merchants) => { + form.change( + "profile_value", + (#All_Profiles: UserManagementTypes.allSelectionType :> string) + ->String.toLowerCase + ->JSON.Encode.string, + ) + true + } + | _ => false + } + } | #Merchant => false } From 1fe39c3f408a6d5f374fb0fd230f98ec02e24eac Mon Sep 17 00:00:00 2001 From: gitanjli525 Date: Fri, 4 Oct 2024 16:19:57 +0530 Subject: [PATCH 4/6] chore: module api not getting called on user permission json udpate --- src/container/UserManagementContainer.res | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/container/UserManagementContainer.res b/src/container/UserManagementContainer.res index 101737016..7ccd9e455 100644 --- a/src/container/UserManagementContainer.res +++ b/src/container/UserManagementContainer.res @@ -41,7 +41,7 @@ let make = () => { React.useEffect(() => { fetchModuleList()->ignore None - }, []) + }, ()) {switch url.path->urlPath { From e51f157304048a632ed9c41f2a4398769c2a7399 Mon Sep 17 00:00:00 2001 From: gitanjli525 Date: Fri, 4 Oct 2024 16:32:45 +0530 Subject: [PATCH 5/6] chore: module api not getting called on user permission json udpate --- src/container/UserManagementContainer.res | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/container/UserManagementContainer.res b/src/container/UserManagementContainer.res index 7ccd9e455..9321d65e2 100644 --- a/src/container/UserManagementContainer.res +++ b/src/container/UserManagementContainer.res @@ -41,7 +41,7 @@ let make = () => { React.useEffect(() => { fetchModuleList()->ignore None - }, ()) + }, [userPermissionJson]) {switch url.path->urlPath { From c3b6258921043e08da4afb5dc6bc0062702a5e43 Mon Sep 17 00:00:00 2001 From: gitanjli525 Date: Thu, 10 Oct 2024 11:39:32 +0530 Subject: [PATCH 6/6] chore: merged main --- src/container/UserManagementContainer.res | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/container/UserManagementContainer.res b/src/container/UserManagementContainer.res index d0b2683c0..e65659115 100644 --- a/src/container/UserManagementContainer.res +++ b/src/container/UserManagementContainer.res @@ -41,7 +41,7 @@ let make = () => { React.useEffect(() => { fetchModuleList()->ignore None - }, [userPermissionJson]) + }, []) {switch url.path->urlPath {