@@ -32,6 +32,8 @@ import {
32
32
CDMaterialFilterQuery ,
33
33
ImagePromotionMaterialInfo ,
34
34
EnvironmentListHelmResponse ,
35
+ UserGroupApproverType ,
36
+ UserGroupDataType ,
35
37
} from './Types'
36
38
import { ApiResourceType } from '../Pages'
37
39
@@ -169,19 +171,67 @@ const cdMaterialListModal = (artifacts: any[], offset: number, artifactId?: numb
169
171
return materials
170
172
}
171
173
174
+ const SPECIFIC_EMAILS = [
175
+ 'specific-email-1@devtron.ai' ,
176
+ 'specific-email-2@devtron.ai' ,
177
+ 'specific-email-3@devtron.ai' ,
178
+ 'specific-email-4@devtron.ai' ,
179
+ ]
180
+
181
+ const VALID_GROUPS = [
182
+ 'managers' ,
183
+ 'security' ,
184
+ 'devops' ,
185
+ 'developers' ,
186
+ ]
187
+
172
188
const processCDMaterialsApprovalInfo = ( enableApproval : boolean , cdMaterialsResult ) : CDMaterialsApprovalInfo => {
173
189
if ( ! enableApproval || ! cdMaterialsResult ) {
174
190
return {
175
191
approvalUsers : [ ] ,
176
192
userApprovalConfig : null ,
177
193
canApproverDeploy : cdMaterialsResult ?. canApproverDeploy ?? false ,
194
+ imageApprovalPolicyDetails : null ,
178
195
}
179
196
}
180
197
181
198
return {
182
199
approvalUsers : cdMaterialsResult . approvalUsers ,
183
200
userApprovalConfig : cdMaterialsResult . userApprovalConfig ,
184
201
canApproverDeploy : cdMaterialsResult . canApproverDeploy ?? false ,
202
+ imageApprovalPolicyDetails : {
203
+ isPolicyConfigured : true ,
204
+ specificUsersData : {
205
+ dataStore : SPECIFIC_EMAILS . reduce ( ( acc , email , index ) => {
206
+ acc [ email ] = {
207
+ email,
208
+ hasAccess : index % 2 === 0 ,
209
+ hasApproved : index % 2 !== 0 ,
210
+ }
211
+ return acc
212
+ } , { } as Record < string , UserGroupApproverType > ) ,
213
+ requiredCount : SPECIFIC_EMAILS . length ,
214
+ emails : SPECIFIC_EMAILS ,
215
+ } ,
216
+ userGroupData : VALID_GROUPS . reduce ( ( acc , userGroup ) => {
217
+ const emails = [ `${ userGroup } -1@devtron.ai` , `${ userGroup } -2@devtron.ai` , `${ userGroup } -3@devtron.ai` ]
218
+
219
+ acc [ userGroup ] = {
220
+ dataStore : emails . reduce ( ( acc , email , index ) => {
221
+ acc [ email ] = {
222
+ email,
223
+ hasAccess : index % 2 === 0 ,
224
+ hasApproved : index % 2 !== 0 ,
225
+ }
226
+ return acc
227
+ } , { } as Record < string , UserGroupApproverType > ) ,
228
+ requiredCount : emails . length ,
229
+ emails,
230
+ }
231
+ return acc
232
+ } , { } as Record < string , UserGroupDataType > ) ,
233
+ validGroups : VALID_GROUPS ,
234
+ }
185
235
}
186
236
}
187
237
0 commit comments