@@ -19,6 +19,7 @@ package restHandler
19
19
import (
20
20
"encoding/json"
21
21
"fmt"
22
+ "github.com/devtron-labs/devtron/pkg/pipeline/draftAwareConfigService"
22
23
"net/http"
23
24
"strconv"
24
25
@@ -63,31 +64,35 @@ type ConfigMapRestHandler interface {
63
64
}
64
65
65
66
type ConfigMapRestHandlerImpl struct {
66
- pipelineBuilder pipeline.PipelineBuilder
67
- Logger * zap.SugaredLogger
68
- chartService chart.ChartService
69
- userAuthService user.UserService
70
- teamService team.TeamService
71
- enforcer casbin.Enforcer
72
- pipelineRepository pipelineConfig.PipelineRepository
73
- enforcerUtil rbac.EnforcerUtil
74
- configMapService pipeline.ConfigMapService
67
+ pipelineBuilder pipeline.PipelineBuilder
68
+ Logger * zap.SugaredLogger
69
+ chartService chart.ChartService
70
+ userAuthService user.UserService
71
+ teamService team.TeamService
72
+ enforcer casbin.Enforcer
73
+ pipelineRepository pipelineConfig.PipelineRepository
74
+ enforcerUtil rbac.EnforcerUtil
75
+ configMapService pipeline.ConfigMapService
76
+ draftAwareResourceService draftAwareConfigService.DraftAwareConfigService
75
77
}
76
78
77
79
func NewConfigMapRestHandlerImpl (pipelineBuilder pipeline.PipelineBuilder , Logger * zap.SugaredLogger ,
78
80
chartService chart.ChartService , userAuthService user.UserService , teamService team.TeamService ,
79
81
enforcer casbin.Enforcer , pipelineRepository pipelineConfig.PipelineRepository ,
80
- enforcerUtil rbac.EnforcerUtil , configMapService pipeline.ConfigMapService ) * ConfigMapRestHandlerImpl {
82
+ enforcerUtil rbac.EnforcerUtil , configMapService pipeline.ConfigMapService ,
83
+ draftAwareResourceService draftAwareConfigService.DraftAwareConfigService ,
84
+ ) * ConfigMapRestHandlerImpl {
81
85
return & ConfigMapRestHandlerImpl {
82
- pipelineBuilder : pipelineBuilder ,
83
- Logger : Logger ,
84
- chartService : chartService ,
85
- userAuthService : userAuthService ,
86
- teamService : teamService ,
87
- enforcer : enforcer ,
88
- pipelineRepository : pipelineRepository ,
89
- enforcerUtil : enforcerUtil ,
90
- configMapService : configMapService ,
86
+ pipelineBuilder : pipelineBuilder ,
87
+ Logger : Logger ,
88
+ chartService : chartService ,
89
+ userAuthService : userAuthService ,
90
+ teamService : teamService ,
91
+ enforcer : enforcer ,
92
+ pipelineRepository : pipelineRepository ,
93
+ enforcerUtil : enforcerUtil ,
94
+ configMapService : configMapService ,
95
+ draftAwareResourceService : draftAwareResourceService ,
91
96
}
92
97
}
93
98
@@ -118,8 +123,14 @@ func (handler ConfigMapRestHandlerImpl) CMGlobalAddUpdate(w http.ResponseWriter,
118
123
return
119
124
}
120
125
//RBAC END
121
-
122
- res , err := handler .configMapService .CMGlobalAddUpdate (& configMapRequest )
126
+ ctx := r .Context ()
127
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
128
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
129
+ if err != nil {
130
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
131
+ return
132
+ }
133
+ res , err := handler .draftAwareResourceService .CMGlobalAddUpdate (ctx , & configMapRequest , isSuperAdmin , userEmail )
123
134
if err != nil {
124
135
handler .Logger .Errorw ("service err, CMGlobalAddUpdate" , "err" , err , "payload" , configMapRequest )
125
136
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -162,8 +173,14 @@ func (handler ConfigMapRestHandlerImpl) CMEnvironmentAddUpdate(w http.ResponseWr
162
173
}
163
174
}
164
175
//RBAC END
165
-
166
- res , err := handler .configMapService .CMEnvironmentAddUpdate (& configMapRequest )
176
+ ctx := r .Context ()
177
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
178
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
179
+ if err != nil {
180
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
181
+ return
182
+ }
183
+ res , err := handler .draftAwareResourceService .CMEnvironmentAddUpdate (ctx , & configMapRequest , isSuperAdmin , userEmail )
167
184
if err != nil {
168
185
handler .Logger .Errorw ("service err, CMEnvironmentAddUpdate" , "err" , err , "payload" , configMapRequest )
169
186
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -359,8 +376,14 @@ func (handler ConfigMapRestHandlerImpl) CSGlobalAddUpdate(w http.ResponseWriter,
359
376
return
360
377
}
361
378
//RBAC END
362
-
363
- res , err := handler .configMapService .CSGlobalAddUpdate (& configMapRequest )
379
+ ctx := r .Context ()
380
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
381
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
382
+ if err != nil {
383
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
384
+ return
385
+ }
386
+ res , err := handler .draftAwareResourceService .CSGlobalAddUpdate (ctx , & configMapRequest , isSuperAdmin , userEmail )
364
387
if err != nil {
365
388
handler .Logger .Errorw ("service err, CSGlobalAddUpdate" , "err" , err , "payload" , configMapRequest )
366
389
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -404,8 +427,14 @@ func (handler ConfigMapRestHandlerImpl) CSEnvironmentAddUpdate(w http.ResponseWr
404
427
}
405
428
}
406
429
//RBAC END
407
-
408
- res , err := handler .configMapService .CSEnvironmentAddUpdate (& configMapRequest )
430
+ ctx := r .Context ()
431
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
432
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
433
+ if err != nil {
434
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
435
+ return
436
+ }
437
+ res , err := handler .draftAwareResourceService .CSEnvironmentAddUpdate (ctx , & configMapRequest , isSuperAdmin , userEmail )
409
438
if err != nil {
410
439
handler .Logger .Errorw ("service err, CSEnvironmentAddUpdate" , "err" , err , "payload" , configMapRequest )
411
440
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -517,8 +546,19 @@ func (handler ConfigMapRestHandlerImpl) CMGlobalDelete(w http.ResponseWriter, r
517
546
return
518
547
}
519
548
//RBAC END
520
-
521
- res , err := handler .configMapService .CMGlobalDelete (name , id , userId )
549
+ ctx := r .Context ()
550
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
551
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
552
+ if err != nil {
553
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
554
+ return
555
+ }
556
+ deleteReq := & bean.ConfigDataRequest {
557
+ Id : id ,
558
+ AppId : appId ,
559
+ UserId : userId ,
560
+ }
561
+ res , err := handler .draftAwareResourceService .CMGlobalDelete (ctx , name , deleteReq , isSuperAdmin , userEmail )
522
562
if err != nil {
523
563
handler .Logger .Errorw ("service err, CMGlobalDelete" , "err" , err , "appId" , appId , "id" , id , "name" , name )
524
564
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -572,8 +612,19 @@ func (handler ConfigMapRestHandlerImpl) CMEnvironmentDelete(w http.ResponseWrite
572
612
}
573
613
}
574
614
//RBAC END
575
-
576
- res , err := handler .configMapService .CMEnvironmentDelete (name , id , userId )
615
+ ctx := r .Context ()
616
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
617
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
618
+ if err != nil {
619
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
620
+ return
621
+ }
622
+ deleteReq := & bean.ConfigDataRequest {
623
+ Id : id ,
624
+ AppId : appId ,
625
+ UserId : userId ,
626
+ }
627
+ res , err := handler .draftAwareResourceService .CMEnvironmentDelete (ctx , name , deleteReq , isSuperAdmin , userEmail )
577
628
if err != nil {
578
629
handler .Logger .Errorw ("service err, CMEnvironmentDelete" , "err" , err , "appId" , appId , "envId" , envId , "id" , id )
579
630
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -613,8 +664,19 @@ func (handler ConfigMapRestHandlerImpl) CSGlobalDelete(w http.ResponseWriter, r
613
664
return
614
665
}
615
666
//RBAC END
616
-
617
- res , err := handler .configMapService .CSGlobalDelete (name , id , userId )
667
+ ctx := r .Context ()
668
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
669
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
670
+ if err != nil {
671
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
672
+ return
673
+ }
674
+ deleteReq := & bean.ConfigDataRequest {
675
+ Id : id ,
676
+ AppId : appId ,
677
+ UserId : userId ,
678
+ }
679
+ res , err := handler .draftAwareResourceService .CSGlobalDelete (ctx , name , deleteReq , isSuperAdmin , userEmail )
618
680
if err != nil {
619
681
handler .Logger .Errorw ("service err, CSGlobalDelete" , "err" , err , "appId" , appId , "id" , id , "name" , name )
620
682
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -668,8 +730,19 @@ func (handler ConfigMapRestHandlerImpl) CSEnvironmentDelete(w http.ResponseWrite
668
730
}
669
731
}
670
732
//RBAC END
671
-
672
- res , err := handler .configMapService .CSEnvironmentDelete (name , id , userId )
733
+ ctx := r .Context ()
734
+ isSuperAdmin := handler .enforcer .Enforce (token , casbin .ResourceGlobal , casbin .ActionCreate , "*" )
735
+ userEmail , err := handler .userAuthService .GetActiveEmailById (userId )
736
+ if err != nil {
737
+ common .WriteJsonResp (w , fmt .Errorf ("userEmail not found by userId" ), "userEmail not found by userId" , http .StatusNotFound )
738
+ return
739
+ }
740
+ deleteReq := & bean.ConfigDataRequest {
741
+ Id : id ,
742
+ AppId : appId ,
743
+ UserId : userId ,
744
+ }
745
+ res , err := handler .draftAwareResourceService .CSEnvironmentDelete (ctx , name , deleteReq , isSuperAdmin , userEmail )
673
746
if err != nil {
674
747
handler .Logger .Errorw ("service err, CSEnvironmentDelete" , "err" , err , "appId" , appId , "envId" , envId , "id" , id )
675
748
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
0 commit comments