From a024a13f2519160ef5925756e1203cd19d6fe23b Mon Sep 17 00:00:00 2001 From: jinapurapu <65002498+jinapurapu@users.noreply.github.com> Date: Tue, 14 Jun 2022 10:18:41 -0700 Subject: [PATCH] Policy selector fix (#2123) --- .../screens/Console/Policies/PolicySelectors.tsx | 16 ++++++++++------ .../src/screens/Console/Policies/SetPolicy.tsx | 10 +++++++--- .../screens/Console/Users/SetUserPolicies.tsx | 7 +++++-- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/portal-ui/src/screens/Console/Policies/PolicySelectors.tsx b/portal-ui/src/screens/Console/Policies/PolicySelectors.tsx index 3abf0e33a0..8be1cfbebc 100644 --- a/portal-ui/src/screens/Console/Policies/PolicySelectors.tsx +++ b/portal-ui/src/screens/Console/Policies/PolicySelectors.tsx @@ -35,8 +35,9 @@ import api from "../../../common/api"; import TableWrapper from "../Common/TableWrapper/TableWrapper"; import SearchBox from "../Common/SearchBox"; import { setModalErrorSnackMessage } from "../../../systemSlice"; -import { useAppDispatch } from "../../../store"; +import { AppState, useAppDispatch } from "../../../store"; import { setSelectedPolicies } from "../Users/AddUsersSlice"; +import { useSelector } from "react-redux"; interface ISelectPolicyProps { classes: any; @@ -84,9 +85,11 @@ const PolicySelectors = ({ const [loading, isLoading] = useState(false); const [filter, setFilter] = useState(""); + const currentPolicies = useSelector((state: AppState) => state.createUser.selectedPolicies); + const fetchPolicies = useCallback(() => { isLoading(true); - + api .invoke("GET", `/api/v1/policies?limit=1000`) .then((res: PolicyList) => { @@ -112,11 +115,12 @@ const PolicySelectors = ({ }, [loading, fetchPolicies]); const selectionChanged = (e: React.ChangeEvent) => { + const targetD = e.target; const value = targetD.value; const checked = targetD.checked; - - let elements: string[] = [...selectedPolicy]; // We clone the checkedUsers array + + let elements: string[] = [...currentPolicies]; // We clone the checkedUsers array if (checked) { // If the user has checked this field we need to push this to checkedUsersList @@ -127,7 +131,7 @@ const PolicySelectors = ({ } // remove empty values elements = elements.filter((element) => element !== ""); - + dispatch(setSelectedPolicies(elements)); }; @@ -162,7 +166,7 @@ const PolicySelectors = ({ createStyles({ ...modalBasic, @@ -72,7 +76,7 @@ const SetPolicy = ({ const [loading, setLoading] = useState(false); const [actualPolicy, setActualPolicy] = useState([]); const [selectedPolicy, setSelectedPolicy] = useState([]); - + const currentPolicies = useSelector((state: AppState) => state.createUser.selectedPolicies); const setPolicyAction = () => { let users = null; let groups = null; @@ -88,7 +92,7 @@ const SetPolicy = ({ api .invoke("PUT", `/api/v1/set-policy-multi`, { - name: selectedPolicy, + name: currentPolicies, groups: groups, users: users, }) diff --git a/portal-ui/src/screens/Console/Users/SetUserPolicies.tsx b/portal-ui/src/screens/Console/Users/SetUserPolicies.tsx index 1a1f557835..86e2d0eccd 100644 --- a/portal-ui/src/screens/Console/Users/SetUserPolicies.tsx +++ b/portal-ui/src/screens/Console/Users/SetUserPolicies.tsx @@ -28,7 +28,8 @@ import ModalWrapper from "../Common/ModalWrapper/ModalWrapper"; import api from "../../../common/api"; import PolicySelectors from "../Policies/PolicySelectors"; import { setModalErrorSnackMessage } from "../../../systemSlice"; -import { useAppDispatch } from "../../../store"; +import { AppState, useAppDispatch } from "../../../store"; +import { useSelector } from "react-redux"; interface ISetUserPoliciesProps { classes: any; @@ -60,6 +61,8 @@ const SetUserPolicies = ({ const [actualPolicy, setActualPolicy] = useState([]); const [selectedPolicy, setSelectedPolicy] = useState([]); + const statePolicies = useSelector((state: AppState) => state.createUser.selectedPolicies); + const SetUserPoliciesAction = () => { let entity = "user"; let value = selectedUser; @@ -68,7 +71,7 @@ const SetUserPolicies = ({ api .invoke("PUT", `/api/v1/set-policy`, { - name: selectedPolicy, + name: statePolicies, entityName: value, entityType: entity, })