@@ -22,8 +22,9 @@ import (
22
22
"encoding/json"
23
23
"errors"
24
24
"fmt"
25
+ client "github.com/devtron-labs/devtron/api/helm-app"
25
26
service2 "github.com/devtron-labs/devtron/api/helm-app/service"
26
- "github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/common "
27
+ "github.com/devtron-labs/devtron/pkg/appStore/installedApp/service/EAMode "
27
28
"net/http"
28
29
"strconv"
29
30
"strings"
@@ -59,35 +60,41 @@ type AppStoreDeploymentRestHandler interface {
59
60
}
60
61
61
62
type AppStoreDeploymentRestHandlerImpl struct {
62
- Logger * zap.SugaredLogger
63
- userAuthService user.UserService
64
- enforcer casbin.Enforcer
65
- enforcerUtil rbac.EnforcerUtil
66
- enforcerUtilHelm rbac.EnforcerUtilHelm
67
- appStoreDeploymentService service.AppStoreDeploymentService
68
- appStoreDeploymentServiceC appStoreDeploymentCommon.AppStoreDeploymentCommonService
69
- validator * validator.Validate
70
- helmAppService service2.HelmAppService
71
- argoUserService argo.ArgoUserService
72
- attributesService attributes.AttributesService
63
+ Logger * zap.SugaredLogger
64
+ userAuthService user.UserService
65
+ enforcer casbin.Enforcer
66
+ enforcerUtil rbac.EnforcerUtil
67
+ enforcerUtilHelm rbac.EnforcerUtilHelm
68
+ appStoreDeploymentService service.AppStoreDeploymentService
69
+ appStoreDeploymentDBService service.AppStoreDeploymentDBService
70
+ validator * validator.Validate
71
+ helmAppService service2.HelmAppService
72
+ helmAppRestHandler client.HelmAppRestHandler
73
+ argoUserService argo.ArgoUserService
74
+ attributesService attributes.AttributesService
75
+ installAppService EAMode.InstalledAppDBService
73
76
}
74
77
75
78
func NewAppStoreDeploymentRestHandlerImpl (Logger * zap.SugaredLogger , userAuthService user.UserService ,
76
- enforcer casbin.Enforcer , enforcerUtil rbac.EnforcerUtil , enforcerUtilHelm rbac.EnforcerUtilHelm , appStoreDeploymentService service.AppStoreDeploymentService ,
77
- validator * validator.Validate , helmAppService service2.HelmAppService , appStoreDeploymentServiceC appStoreDeploymentCommon.AppStoreDeploymentCommonService ,
78
- argoUserService argo.ArgoUserService , attributesService attributes.AttributesService ) * AppStoreDeploymentRestHandlerImpl {
79
+ enforcer casbin.Enforcer , enforcerUtil rbac.EnforcerUtil , enforcerUtilHelm rbac.EnforcerUtilHelm ,
80
+ appStoreDeploymentService service.AppStoreDeploymentService ,
81
+ appStoreDeploymentDBService service.AppStoreDeploymentDBService ,
82
+ validator * validator.Validate , helmAppService service2.HelmAppService ,
83
+ argoUserService argo.ArgoUserService , attributesService attributes.AttributesService ,
84
+ installAppService EAMode.InstalledAppDBService ) * AppStoreDeploymentRestHandlerImpl {
79
85
return & AppStoreDeploymentRestHandlerImpl {
80
- Logger : Logger ,
81
- userAuthService : userAuthService ,
82
- enforcer : enforcer ,
83
- enforcerUtil : enforcerUtil ,
84
- enforcerUtilHelm : enforcerUtilHelm ,
85
- appStoreDeploymentService : appStoreDeploymentService ,
86
- validator : validator ,
87
- helmAppService : helmAppService ,
88
- appStoreDeploymentServiceC : appStoreDeploymentServiceC ,
89
- argoUserService : argoUserService ,
90
- attributesService : attributesService ,
86
+ Logger : Logger ,
87
+ userAuthService : userAuthService ,
88
+ enforcer : enforcer ,
89
+ enforcerUtil : enforcerUtil ,
90
+ enforcerUtilHelm : enforcerUtilHelm ,
91
+ appStoreDeploymentService : appStoreDeploymentService ,
92
+ appStoreDeploymentDBService : appStoreDeploymentDBService ,
93
+ validator : validator ,
94
+ helmAppService : helmAppService ,
95
+ argoUserService : argoUserService ,
96
+ attributesService : attributesService ,
97
+ installAppService : installAppService ,
91
98
}
92
99
}
93
100
@@ -139,7 +146,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) InstallApp(w http.ResponseWrite
139
146
}
140
147
//rbac block ends here
141
148
142
- isChartRepoActive , err := handler .appStoreDeploymentService . IsChartRepoActive (request .AppStoreVersion )
149
+ isChartRepoActive , err := handler .appStoreDeploymentDBService . IsChartProviderActive (request .AppStoreVersion )
143
150
if err != nil {
144
151
handler .Logger .Errorw ("service err, CreateInstalledApp" , "err" , err , "payload" , request )
145
152
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -203,7 +210,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppsByAppStoreId(w
203
210
}
204
211
token := r .Header .Get ("token" )
205
212
handler .Logger .Infow ("request payload, GetInstalledAppsByAppStoreId" , "appStoreId" , appStoreId )
206
- res , err := handler .appStoreDeploymentService .GetAllInstalledAppsByAppStoreId (w , r , token , appStoreId )
213
+ res , err := handler .appStoreDeploymentDBService .GetAllInstalledAppsByAppStoreId (appStoreId )
207
214
if err != nil {
208
215
handler .Logger .Errorw ("service err, GetInstalledAppsByAppStoreId" , "err" , err , "appStoreId" , appStoreId )
209
216
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -289,7 +296,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) DeleteInstalledApp(w http.Respo
289
296
290
297
handler .Logger .Infow ("request payload, DeleteInstalledApp" , "installAppId" , installAppId )
291
298
token := r .Header .Get ("token" )
292
- installedApp , err := handler .appStoreDeploymentService .GetInstalledApp (installAppId )
299
+ installedApp , err := handler .appStoreDeploymentDBService .GetInstalledApp (installAppId )
293
300
if err != nil {
294
301
handler .Logger .Error (err )
295
302
if err == pg .ErrNoRows {
@@ -432,7 +439,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) UpdateInstalledApp(w http.Respo
432
439
}
433
440
token := r .Header .Get ("token" )
434
441
handler .Logger .Debugw ("request payload, UpdateInstalledApp" , "payload" , request )
435
- installedApp , err := handler .appStoreDeploymentService .GetInstalledApp (request .InstalledAppId )
442
+ installedApp , err := handler .appStoreDeploymentDBService .GetInstalledApp (request .InstalledAppId )
436
443
if err != nil {
437
444
handler .Logger .Errorw ("service err, UpdateInstalledApp" , "err" , err , "payload" , request )
438
445
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -520,7 +527,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppVersion(w http.R
520
527
}
521
528
token := r .Header .Get ("token" )
522
529
handler .Logger .Infow ("request payload, GetInstalledAppVersion" , "installedAppVersionId" , installedAppId )
523
- dto , err := handler .appStoreDeploymentService .GetInstalledAppVersion (installedAppId , userId )
530
+ dto , err := handler .installAppService .GetInstalledAppVersion (installedAppId , userId )
524
531
if err != nil {
525
532
handler .Logger .Errorw ("service err, GetInstalledAppVersion" , "err" , err , "installedAppVersionId" , installedAppId )
526
533
common .WriteJsonResp (w , err , nil , http .StatusInternalServerError )
@@ -585,18 +592,29 @@ func (handler AppStoreDeploymentRestHandlerImpl) UpdateProjectHelmApp(w http.Res
585
592
return
586
593
}
587
594
} else {
588
- installedApp , err := handler .appStoreDeploymentService .GetInstalledApp (request .InstalledAppId )
595
+ installedApp , err := handler .appStoreDeploymentDBService .GetInstalledApp (request .InstalledAppId )
589
596
if err != nil {
590
597
handler .Logger .Errorw ("service err, InstalledAppId" , "err" , err , "InstalledAppId" , request .InstalledAppId )
591
598
common .WriteJsonResp (w , fmt .Errorf ("Unable to fetch installed app details" ), nil , http .StatusBadRequest )
592
599
}
593
- rbacObjectForCurrentProject , rbacObjectForCurrentProject2 := handler .enforcerUtilHelm .GetHelmObjectByClusterIdNamespaceAndAppName (installedApp .ClusterId , installedApp .Namespace , installedApp .AppName )
594
- ok := handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForCurrentProject ) || handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForCurrentProject2 )
595
- rbacObjectForRequestedProject := handler .enforcerUtilHelm .GetHelmObjectByTeamIdAndClusterId (request .TeamId , installedApp .ClusterId , installedApp .Namespace , installedApp .AppName )
596
- ok = handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForRequestedProject )
597
- if ! ok {
598
- common .WriteJsonResp (w , fmt .Errorf ("unauthorized user" ), nil , http .StatusForbidden )
599
- return
600
+ if installedApp .IsVirtualEnvironment {
601
+ rbacObjectForCurrentProject , _ := handler .enforcerUtilHelm .GetAppRBACNameByInstalledAppId (request .InstalledAppId )
602
+ ok := handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForCurrentProject )
603
+ rbacObjectForRequestedProject := handler .enforcerUtilHelm .GetAppRBACNameByInstalledAppIdAndTeamId (request .InstalledAppId , request .TeamId )
604
+ ok = handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForRequestedProject )
605
+ if ! ok {
606
+ common .WriteJsonResp (w , fmt .Errorf ("unauthorized user" ), nil , http .StatusForbidden )
607
+ return
608
+ }
609
+ } else {
610
+ rbacObjectForCurrentProject , rbacObjectForCurrentProject2 := handler .enforcerUtilHelm .GetHelmObjectByClusterIdNamespaceAndAppName (installedApp .ClusterId , installedApp .Namespace , installedApp .AppName )
611
+ ok := handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForCurrentProject ) || handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForCurrentProject2 )
612
+ rbacObjectForRequestedProject := handler .enforcerUtilHelm .GetHelmObjectByTeamIdAndClusterId (request .TeamId , installedApp .ClusterId , installedApp .Namespace , installedApp .AppName )
613
+ ok = handler .enforcer .Enforce (token , casbin .ResourceHelmApp , casbin .ActionUpdate , rbacObjectForRequestedProject )
614
+ if ! ok {
615
+ common .WriteJsonResp (w , fmt .Errorf ("unauthorized user" ), nil , http .StatusForbidden )
616
+ return
617
+ }
600
618
}
601
619
}
602
620
err = handler .appStoreDeploymentService .UpdateProjectHelmApp (& request )
0 commit comments