From 8364b358b958dd116c228a652001b679426f0a62 Mon Sep 17 00:00:00 2001 From: Luke Heath Date: Fri, 11 Nov 2022 15:08:03 -0600 Subject: [PATCH] Fix inherited policy counts (#8681) --- frontend/interfaces/policy.ts | 4 ++++ .../ManagePoliciesPage/ManagePoliciesPage.tsx | 22 ++++++++++++++----- frontend/services/entities/team_policies.ts | 4 ++-- 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/frontend/interfaces/policy.ts b/frontend/interfaces/policy.ts index 583c83ff74..268679084f 100644 --- a/frontend/interfaces/policy.ts +++ b/frontend/interfaces/policy.ts @@ -50,6 +50,10 @@ export interface ILoadAllPoliciesResponse { policies: IPolicyStats[]; } +export interface ILoadTeamPoliciesResponse { + policies: IPolicyStats[]; + inherited_policies: IPolicyStats[]; +} export interface IPolicyFormData { description?: string | number | boolean | undefined; resolution?: string | number | boolean | undefined; diff --git a/frontend/pages/policies/ManagePoliciesPage/ManagePoliciesPage.tsx b/frontend/pages/policies/ManagePoliciesPage/ManagePoliciesPage.tsx index 5a1885a320..0b5abbd661 100644 --- a/frontend/pages/policies/ManagePoliciesPage/ManagePoliciesPage.tsx +++ b/frontend/pages/policies/ManagePoliciesPage/ManagePoliciesPage.tsx @@ -10,7 +10,12 @@ import { NotificationContext } from "context/notification"; import { IConfig, IWebhookSettings } from "interfaces/config"; import { IIntegrations } from "interfaces/integration"; -import { IPolicyStats, ILoadAllPoliciesResponse } from "interfaces/policy"; +import { + IPolicyStats, + ILoadAllPoliciesResponse, + ILoadTeamPoliciesResponse, + IPolicy, +} from "interfaces/policy"; import { ITeamConfig } from "interfaces/team"; import PATHS from "router/paths"; @@ -87,6 +92,9 @@ const ManagePolicyPage = ({ const [showDeletePolicyModal, setShowDeletePolicyModal] = useState(false); const [showInheritedPolicies, setShowInheritedPolicies] = useState(false); + const [teamPolicies, setTeamPolicies] = useState(); + const [inheritedPolicies, setInheritedPolicies] = useState(); + useEffect(() => { setLastEditedQueryPlatform(null); }, []); @@ -110,16 +118,18 @@ const ManagePolicyPage = ({ ); const { - data: teamPolicies, error: teamPoliciesError, isFetching: isFetchingTeamPolicies, refetch: refetchTeamPolicies, - } = useQuery( + } = useQuery( ["teamPolicies", teamId], () => teamPoliciesAPI.loadAll(teamId), { enabled: !!availableTeams && isPremiumTier && !!teamId, - select: (data) => data.policies, + onSuccess: (data) => { + setTeamPolicies(data.policies); + setInheritedPolicies(data.inherited_policies); + }, staleTime: 5000, } ); @@ -475,8 +485,8 @@ const ManagePolicyPage = ({ ) : ( { @@ -42,7 +42,7 @@ export default { return sendRequest("GET", path); }, - loadAll: (team_id?: number): Promise => { + loadAll: (team_id?: number): Promise => { const { TEAMS } = endpoints; const path = `${TEAMS}/${team_id}/policies`; if (!team_id) {