@@ -37,6 +37,8 @@ import {
37
37
ImageApprovalPolicyType ,
38
38
ImageApprovalUsersInfoDTO ,
39
39
UserApprovalMetadataType ,
40
+ UserApprovalConfigType ,
41
+ CDMaterialListModalServiceUtilProps ,
40
42
} from './Types'
41
43
import { ApiResourceType } from '../Pages'
42
44
import { getIsManualApprovalSpecific , sanitizeUserApprovalConfig , stringComparatorBySortOrder } from '@Shared/Helpers'
@@ -88,30 +90,35 @@ export function setImageTags(request, pipelineId: number, artifactId: number) {
88
90
return post ( `${ ROUTES . IMAGE_TAGGING } /${ pipelineId } /${ artifactId } ` , request )
89
91
}
90
92
91
- const sanitizeApprovalConfigFromApprovalMetadata = ( approvalMetadata : UserApprovalMetadataType ) :UserApprovalMetadataType => {
93
+ const sanitizeApprovalConfigFromApprovalMetadata = (
94
+ approvalMetadata : UserApprovalMetadataType ,
95
+ userApprovalConfig : UserApprovalConfigType ,
96
+ ) : UserApprovalMetadataType => {
92
97
if ( ! approvalMetadata ) {
93
98
return null
94
99
}
95
100
96
101
const approvedUsersData = approvalMetadata . approvedUsersData || [ ]
102
+ const unsanitizedApprovalConfig = approvalMetadata . approvalConfig || userApprovalConfig
97
103
98
104
return {
99
105
...approvalMetadata ,
100
106
approvedUsersData : approvedUsersData . map ( ( userData ) => ( {
101
107
...userData ,
102
108
userGroups : userData . userGroups ?. filter ( ( group ) => ! ! group ?. identifier && ! ! group ?. name ) ?? [ ] ,
103
109
} ) ) ,
104
- approvalConfig : sanitizeUserApprovalConfig ( approvalMetadata . approvalConfig ) ,
110
+ approvalConfig : sanitizeUserApprovalConfig ( unsanitizedApprovalConfig ) ,
105
111
}
106
112
}
107
113
108
- const cdMaterialListModal = (
109
- artifacts : any [ ] ,
110
- offset : number ,
111
- artifactId ?: number ,
112
- artifactStatus ?: string ,
113
- disableDefaultSelection ?: boolean ,
114
- ) => {
114
+ const cdMaterialListModal = ( {
115
+ artifacts,
116
+ offset,
117
+ artifactId,
118
+ artifactStatus,
119
+ disableDefaultSelection,
120
+ userApprovalConfig,
121
+ } : CDMaterialListModalServiceUtilProps ) => {
115
122
if ( ! artifacts || ! artifacts . length ) return [ ]
116
123
117
124
const markFirstSelected = offset === 0
@@ -155,7 +162,10 @@ const cdMaterialListModal = (
155
162
vulnerable : material . vulnerable ,
156
163
runningOnParentCd : material . runningOnParentCd ,
157
164
artifactStatus : artifactStatusValue ,
158
- userApprovalMetadata : sanitizeApprovalConfigFromApprovalMetadata ( material . userApprovalMetadata ) ,
165
+ userApprovalMetadata : sanitizeApprovalConfigFromApprovalMetadata (
166
+ material . userApprovalMetadata ,
167
+ userApprovalConfig ,
168
+ ) ,
159
169
triggeredBy : material . triggeredBy ,
160
170
isVirtualEnvironment : material . isVirtualEnvironment ,
161
171
imageComment : material . imageComment ,
@@ -356,13 +366,14 @@ export const processCDMaterialServiceResponse = (
356
366
}
357
367
}
358
368
359
- const materials = cdMaterialListModal (
360
- cdMaterialsResult . ci_artifacts ,
361
- offset ?? 0 ,
362
- cdMaterialsResult . latest_wf_artifact_id ,
363
- cdMaterialsResult . latest_wf_artifact_status ,
369
+ const materials = cdMaterialListModal ( {
370
+ artifacts : cdMaterialsResult . ci_artifacts ,
371
+ offset : offset ?? 0 ,
372
+ artifactId : cdMaterialsResult . latest_wf_artifact_id ,
373
+ artifactStatus : cdMaterialsResult . latest_wf_artifact_status ,
364
374
disableDefaultSelection,
365
- )
375
+ userApprovalConfig : cdMaterialsResult . userApprovalConfig ,
376
+ } )
366
377
const approvalInfo = processCDMaterialsApprovalInfo (
367
378
stage === DeploymentNodeType . CD || stage === DeploymentNodeType . APPROVAL ,
368
379
cdMaterialsResult ,
0 commit comments