@@ -19,6 +19,7 @@ package restHandler
1919import (
2020 "encoding/json"
2121 "fmt"
22+ "github.com/devtron-labs/devtron/pkg/pipeline/draftAwareConfigService"
2223 "net/http"
2324 "strconv"
2425
@@ -63,31 +64,35 @@ type ConfigMapRestHandler interface {
6364}
6465
6566type 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
7577}
7678
7779func NewConfigMapRestHandlerImpl (pipelineBuilder pipeline.PipelineBuilder , Logger * zap.SugaredLogger ,
7880 chartService chart.ChartService , userAuthService user.UserService , teamService team.TeamService ,
7981 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 {
8185 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 ,
9196 }
9297}
9398
@@ -118,8 +123,14 @@ func (handler ConfigMapRestHandlerImpl) CMGlobalAddUpdate(w http.ResponseWriter,
118123 return
119124 }
120125 //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 )
123134 if err != nil {
124135 handler .Logger .Errorw ("service err, CMGlobalAddUpdate" , "err" , err , "payload" , configMapRequest )
125136 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -162,8 +173,14 @@ func (handler ConfigMapRestHandlerImpl) CMEnvironmentAddUpdate(w http.ResponseWr
162173 }
163174 }
164175 //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 )
167184 if err != nil {
168185 handler .Logger .Errorw ("service err, CMEnvironmentAddUpdate" , "err" , err , "payload" , configMapRequest )
169186 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -359,8 +376,14 @@ func (handler ConfigMapRestHandlerImpl) CSGlobalAddUpdate(w http.ResponseWriter,
359376 return
360377 }
361378 //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 )
364387 if err != nil {
365388 handler .Logger .Errorw ("service err, CSGlobalAddUpdate" , "err" , err , "payload" , configMapRequest )
366389 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -404,8 +427,14 @@ func (handler ConfigMapRestHandlerImpl) CSEnvironmentAddUpdate(w http.ResponseWr
404427 }
405428 }
406429 //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 )
409438 if err != nil {
410439 handler .Logger .Errorw ("service err, CSEnvironmentAddUpdate" , "err" , err , "payload" , configMapRequest )
411440 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -517,8 +546,19 @@ func (handler ConfigMapRestHandlerImpl) CMGlobalDelete(w http.ResponseWriter, r
517546 return
518547 }
519548 //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 )
522562 if err != nil {
523563 handler .Logger .Errorw ("service err, CMGlobalDelete" , "err" , err , "appId" , appId , "id" , id , "name" , name )
524564 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -572,8 +612,19 @@ func (handler ConfigMapRestHandlerImpl) CMEnvironmentDelete(w http.ResponseWrite
572612 }
573613 }
574614 //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 )
577628 if err != nil {
578629 handler .Logger .Errorw ("service err, CMEnvironmentDelete" , "err" , err , "appId" , appId , "envId" , envId , "id" , id )
579630 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -613,8 +664,19 @@ func (handler ConfigMapRestHandlerImpl) CSGlobalDelete(w http.ResponseWriter, r
613664 return
614665 }
615666 //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 )
618680 if err != nil {
619681 handler .Logger .Errorw ("service err, CSGlobalDelete" , "err" , err , "appId" , appId , "id" , id , "name" , name )
620682 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -668,8 +730,19 @@ func (handler ConfigMapRestHandlerImpl) CSEnvironmentDelete(w http.ResponseWrite
668730 }
669731 }
670732 //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 )
673746 if err != nil {
674747 handler .Logger .Errorw ("service err, CSEnvironmentDelete" , "err" , err , "appId" , appId , "envId" , envId , "id" , id )
675748 common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
0 commit comments