Skip to content

Commit 01b233c

Browse files
committed
feat: sanitize user approval config in processCDMaterialsApprovalInfo
1 parent 5290c05 commit 01b233c

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/Common/Common.service.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ import {
3434
EnvironmentListHelmResponse,
3535
UserGroupApproverType,
3636
ImageApprovalPolicyUserGroupDataType,
37+
ManualApprovalType,
38+
UserApprovalConfigType,
3739
} from './Types'
3840
import { ApiResourceType } from '../Pages'
3941

@@ -185,6 +187,16 @@ const VALID_GROUPS = [
185187
'developers',
186188
]
187189

190+
export const sanitizeUserApprovalConfig = (userApprovalConfig: UserApprovalConfigType): UserApprovalConfigType => ({
191+
requiredCount: userApprovalConfig?.requiredCount ?? 0,
192+
type: userApprovalConfig?.type ?? ManualApprovalType.notConfigured,
193+
specificUsers: {
194+
identifiers: userApprovalConfig?.specificUsers?.identifiers ?? [],
195+
requiredCount: userApprovalConfig?.specificUsers?.identifiers?.length ?? 0,
196+
},
197+
userGroups: userApprovalConfig?.userGroups ?? [],
198+
})
199+
188200
const processCDMaterialsApprovalInfo = (enableApproval: boolean, cdMaterialsResult): CDMaterialsApprovalInfo => {
189201
if (!enableApproval || !cdMaterialsResult) {
190202
return {
@@ -197,8 +209,7 @@ const processCDMaterialsApprovalInfo = (enableApproval: boolean, cdMaterialsResu
197209

198210
return {
199211
approvalUsers: cdMaterialsResult.approvalUsers,
200-
// TODO: use sanitizeUserApprovalConfig
201-
userApprovalConfig: cdMaterialsResult.userApprovalConfig,
212+
userApprovalConfig: sanitizeUserApprovalConfig(cdMaterialsResult.userApprovalConfig),
202213
canApproverDeploy: cdMaterialsResult.canApproverDeploy ?? false,
203214
imageApprovalPolicyDetails: {
204215
isPolicyConfigured: true,

src/Common/Types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,7 @@ export interface UserApprovalConfigType {
351351
requiredCount: number
352352
specificUsers: {
353353
identifiers: string[]
354+
requiredCount: number
354355
}
355356
userGroups: (Pick<UserGroupDTO, 'identifier'> & {
356357
requiredCount: number
@@ -375,13 +376,15 @@ interface ApprovalUserDataType {
375376
userEmail: string
376377
userId: number
377378
userResponse: number
379+
userGroups?: Pick<UserGroupDTO, 'identifier' | 'name'>[]
378380
}
379381

380382
export interface UserApprovalMetadataType {
381383
approvalRequestId: number
382384
approvalRuntimeState: number
383385
approvedUsersData: ApprovalUserDataType[]
384386
requestedUserData: ApprovalUserDataType
387+
approvalConfig?: UserApprovalConfigType
385388
}
386389

387390
export enum FilterStates {

0 commit comments

Comments
 (0)