Skip to content

Commit 9b8ea05

Browse files
Ash-expkartik-579nishant-dShashwatDadhich
authored andcommitted
chore: App Store refactoring v4 (#4647)
* removed registerInArgo multiple impls * extracted app metrics code * migrated envLevel app metrics code to new service * chore: Removed unused jira and migration integration (#4498) * removed unsued jira integration * removed test-suite-code * db migration conf removal * chore: removed unused injection * chore: removed dead code * added: migration script --------- Co-authored-by: Ash-exp <[email protected]> * chore: App store dead code cleanup and restructuring (#4497) * moved chart-group in seperate code * removed unused dependency * removed dead code * extracted resource tree * moved notes * resource movement * removed unused code * removed unused dependency * commit methods * extracted status update * chore: clean up unused dead code * updated: EA mode docker file * updated: migration number --------- Co-authored-by: Ash-exp <[email protected]> * chart ref refactoring * removed infra metrics db calls * moved app metrics repositories from /internal to /pkg * moved: const and types to bean * removed: unused const * review comments * migrated some methods from chartService to chartRefService * added dt validation service interface * minor refactoring * moved validation method - 1 * wip * removed redundant appMetrics req obj * moved app metrics bindings to wireset * removed multiple dead code * remove redundant dependency * moved ChartGroup router and rest handler to respective folder * stage 1 * gitOps refactoring * moved gitClient code to a common wrapper service * chore: AppStoreDeployment Install flow refactoring * review changes * wip * fix for unsupported charts * refactoring: App Store deployment services * minor cleanup * renamed remote package to git * renamed gitOpsRemoteOpService If and impl * migrated usages of gitService to gitOperationService * shifted git service and all gitOps clients to pkg * gitops repository usages refactor * refactored gitOpsRepository usages * gitlab client creation refactoring * renamed util/ChartService * reverted renaming changes * reverted renaming changes * reverted renaming changes * wip * wip * removed typo * changes * changes * chore: App store services refactoring (#4596) * chore: fixed test file * chore: app store deployment services refactoring * updated todo * chore: dead code removal and app router & rest handler restructuring (#4595) (#4608) * prom code removal * removed test suites * chore: removed support for unused Prometheus and ArgoCd APIs * chore: app router and rest handler restructuring * removed redundant routings * fixed: sub path * Updated alias and added queries to AppList group router --------- Co-authored-by: nishant <[email protected]> * chore: sanity after ent sync * added: todo comment * added: todo comment * chore: fixed gitops auto fix operations in upgrade helm charts * added: nit pointer issue for argocd resource tree * fixed: nil poniter issue for gitops in upgrade deployment * chore: install Helm chart flow refactoring * removed: comments * chore: broken down AppStoreDeploymentService interface * fix: install apps audit logs * chore: update env name usgae * chore: fixed main merge changes * updated env var parsing * moved attribute const to bean * removed unused dependency injection * chore: updated alias name * updated: test file * updated wire file * fixed: nil pointer issue * fixed: pg no row issue * fixed: dependency injection * fix: adapter data provider methods * fix: data provider methods * wip * fix: helm app project link * fixed panic on bulk trigger chart group event * fixed gitops validations * fixed delpoyment histroy status for manifest download * App store chore refactoring v4 sync oss (#4778) * code refactored * code refactored * code refactored * code refactored * code refactored * code refactored * code refactored * code refactored --------- Co-authored-by: Ash-exp <[email protected]> --------- Co-authored-by: kartik-579 <[email protected]> Co-authored-by: Nishant <[email protected]> Co-authored-by: nishant <[email protected]> Co-authored-by: Shashwat Dadhich <[email protected]>
1 parent e729c5b commit 9b8ea05

File tree

83 files changed

+1996
-1670
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+1996
-1670
lines changed

Wire.go

+6-3
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ func InitializeApp() (*App, error) {
171171
team.TeamsWireSet,
172172
AuthWireSet,
173173
util4.NewK8sUtil,
174+
wire.Bind(new(util4.K8sService), new(*util4.K8sServiceImpl)),
174175
user.UserWireSet,
175176
sso.SsoConfigWireSet,
176177
cluster.ClusterWireSet,
@@ -182,6 +183,7 @@ func InitializeApp() (*App, error) {
182183
appStoreDiscover.AppStoreDiscoverWireSet,
183184
chartProvider.AppStoreChartProviderWireSet,
184185
appStoreValues.AppStoreValuesWireSet,
186+
util2.GetEnvironmentVariables,
185187
appStoreDeployment.AppStoreDeploymentWireSet,
186188
server.ServerWireSet,
187189
module.ModuleWireSet,
@@ -203,7 +205,6 @@ func InitializeApp() (*App, error) {
203205
helper.NewAppListingRepositoryQueryBuilder,
204206
// sql.GetConfig,
205207
eClient.GetEventClientConfig,
206-
util2.GetGlobalEnvVariables,
207208
// sql.NewDbConnection,
208209
// app.GetACDAuthConfig,
209210
util3.GetACDAuthConfig,
@@ -271,7 +272,7 @@ func InitializeApp() (*App, error) {
271272
app2.NewAppRepositoryImpl,
272273
wire.Bind(new(app2.AppRepository), new(*app2.AppRepositoryImpl)),
273274

274-
pipeline.GetDeploymentServiceTypeConfig,
275+
//util2.GetEnvironmentVariables,
275276

276277
pipeline.NewPipelineBuilderImpl,
277278
wire.Bind(new(pipeline.PipelineBuilder), new(*pipeline.PipelineBuilderImpl)),
@@ -827,7 +828,7 @@ func InitializeApp() (*App, error) {
827828
wire.Bind(new(connection.ArgoCDConnectionManager), new(*connection.ArgoCDConnectionManagerImpl)),
828829
argo.NewArgoUserServiceImpl,
829830
wire.Bind(new(argo.ArgoUserService), new(*argo.ArgoUserServiceImpl)),
830-
util2.GetDevtronSecretName,
831+
//util2.GetEnvironmentVariables,
831832
// AuthWireSet,
832833

833834
cron.NewCdApplicationStatusUpdateHandlerImpl,
@@ -963,6 +964,8 @@ func InitializeApp() (*App, error) {
963964

964965
imageDigestPolicy.NewImageDigestPolicyServiceImpl,
965966
wire.Bind(new(imageDigestPolicy.ImageDigestPolicyService), new(*imageDigestPolicy.ImageDigestPolicyServiceImpl)),
967+
968+
appStoreRestHandler.AppStoreWireSet,
966969
)
967970
return &App{}, nil
968971
}

api/appStore/InstalledAppRestHandler.go

+17-10
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ import (
3333
"time"
3434

3535
bean2 "github.com/devtron-labs/devtron/api/bean"
36-
openapi "github.com/devtron-labs/devtron/api/helm-app/openapiClient"
3736
"github.com/devtron-labs/devtron/api/restHandler/common"
3837
"github.com/devtron-labs/devtron/client/argocdServer/application"
3938
"github.com/devtron-labs/devtron/client/cron"
@@ -87,6 +86,7 @@ type InstalledAppRestHandlerImpl struct {
8786
clusterService cluster.ClusterService
8887
acdServiceClient application.ServiceClient
8988
appStoreDeploymentService service.AppStoreDeploymentService
89+
appStoreDeploymentDBService service.AppStoreDeploymentDBService
9090
helmAppClient client.HelmAppClient
9191
argoUserService argo.ArgoUserService
9292
cdApplicationStatusUpdateHandler cron.CdApplicationStatusUpdateHandler
@@ -97,9 +97,11 @@ type InstalledAppRestHandlerImpl struct {
9797

9898
func NewInstalledAppRestHandlerImpl(Logger *zap.SugaredLogger, userAuthService user.UserService,
9999
enforcer casbin.Enforcer, enforcerUtil rbac.EnforcerUtil, enforcerUtilHelm rbac.EnforcerUtilHelm,
100-
installedAppService FullMode.InstalledAppDBExtendedService, installedAppResourceService resource.InstalledAppResourceService,
100+
installedAppService FullMode.InstalledAppDBExtendedService,
101+
installedAppResourceService resource.InstalledAppResourceService,
101102
chartGroupService chartGroup.ChartGroupService, validator *validator.Validate, clusterService cluster.ClusterService,
102103
acdServiceClient application.ServiceClient, appStoreDeploymentService service.AppStoreDeploymentService,
104+
appStoreDeploymentDBService service.AppStoreDeploymentDBService,
103105
helmAppClient client.HelmAppClient, argoUserService argo.ArgoUserService,
104106
cdApplicationStatusUpdateHandler cron.CdApplicationStatusUpdateHandler,
105107
installedAppRepository repository.InstalledAppRepository,
@@ -118,6 +120,7 @@ func NewInstalledAppRestHandlerImpl(Logger *zap.SugaredLogger, userAuthService u
118120
clusterService: clusterService,
119121
acdServiceClient: acdServiceClient,
120122
appStoreDeploymentService: appStoreDeploymentService,
123+
appStoreDeploymentDBService: appStoreDeploymentDBService,
121124
helmAppClient: helmAppClient,
122125
argoUserService: argoUserService,
123126
cdApplicationStatusUpdateHandler: cdApplicationStatusUpdateHandler,
@@ -142,7 +145,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppOverview(w http.ResponseWrit
142145
}
143146
token := r.Header.Get("token")
144147
handler.Logger.Infow("request payload, FindAppOverview", "installedAppId", installedAppId)
145-
installedApp, err := handler.installedAppService.CheckAppExistsByInstalledAppId(installedAppId)
148+
installedApp, err := handler.installedAppService.GetInstalledAppById(installedAppId)
146149
appOverview, err := handler.appCrudOperationService.GetAppMetaInfo(installedApp.AppId, installedAppId, installedApp.EnvironmentId)
147150
if err != nil {
148151
handler.Logger.Errorw("service err, FetchAppOverview", "err", err, "appId", installedApp.AppId, "installedAppId", installedAppId)
@@ -265,7 +268,7 @@ func (handler InstalledAppRestHandlerImpl) GetAllInstalledApp(w http.ResponseWri
265268
return
266269
}
267270

268-
appIdToAppMap := make(map[string]openapi.HelmApp)
271+
appIdToAppMap := make(map[string]appStoreBean.HelmAppDetails)
269272

270273
//the value of this map is array of strings because the GetHelmObjectByAppNameAndEnvId method may return "//" for error cases
271274
//so different apps may contain same object, to handle that we are using (map[string] []string)
@@ -321,7 +324,7 @@ func (handler InstalledAppRestHandlerImpl) GetAllInstalledApp(w http.ResponseWri
321324
}
322325
}
323326

324-
authorizedApps := make([]openapi.HelmApp, 0)
327+
authorizedApps := make([]appStoreBean.HelmAppDetails, 0)
325328
for appId, _ := range authorizedAppIdSet {
326329
authorizedApp := appIdToAppMap[appId]
327330
authorizedApps = append(authorizedApps, authorizedApp)
@@ -372,7 +375,7 @@ func (handler *InstalledAppRestHandlerImpl) DeployBulk(w http.ResponseWriter, r
372375
} else {
373376
visited[item.AppName] = true
374377
}
375-
isChartRepoActive, err := handler.appStoreDeploymentService.IsChartRepoActive(item.AppStoreVersion)
378+
isChartRepoActive, err := handler.appStoreDeploymentDBService.IsChartProviderActive(item.AppStoreVersion)
376379
if err != nil {
377380
handler.Logger.Errorw("service err, CreateInstalledApp", "err", err, "payload", request)
378381
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
@@ -511,7 +514,7 @@ func (handler *InstalledAppRestHandlerImpl) DeleteArgoInstalledAppWithNonCascade
511514
return
512515
}
513516
}
514-
installedApp, err := handler.appStoreDeploymentService.GetInstalledApp(installedAppId)
517+
installedApp, err := handler.appStoreDeploymentDBService.GetInstalledApp(installedAppId)
515518
if err != nil {
516519
handler.Logger.Error("request err, NonCascadeDeleteCdPipeline", "err", err)
517520
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
@@ -595,7 +598,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchAppDetailsForInstalledApp(w htt
595598
}
596599
handler.Logger.Infow("request payload, FetchAppDetailsForInstalledApp, app store", "installedAppId", installedAppId, "envId", envId)
597600

598-
installedApp, err := handler.installedAppService.CheckAppExistsByInstalledAppId(installedAppId)
601+
installedApp, err := handler.installedAppService.GetInstalledAppById(installedAppId)
599602
if err == pg.ErrNoRows {
600603
common.WriteJsonResp(w, err, "App not found in database", http.StatusBadRequest)
601604
return
@@ -716,11 +719,15 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
716719
return
717720
}
718721
handler.Logger.Infow("request payload, FetchAppDetailsForInstalledAppV2, app store", "installedAppId", installedAppId, "envId", envId)
719-
installedApp, err := handler.installedAppService.CheckAppExistsByInstalledAppId(installedAppId)
722+
installedApp, err := handler.installedAppService.GetInstalledAppById(installedAppId)
720723
if err == pg.ErrNoRows {
721724
common.WriteJsonResp(w, err, "App not found in database", http.StatusBadRequest)
722725
return
723726
}
727+
if installedApp.Environment.IsVirtualEnvironment {
728+
common.WriteJsonResp(w, nil, nil, http.StatusOK)
729+
return
730+
}
724731
token := r.Header.Get("token")
725732
object, object2 := handler.enforcerUtil.GetHelmObjectByAppNameAndEnvId(installedApp.App.AppName, installedApp.EnvironmentId)
726733
var ok bool
@@ -751,7 +758,7 @@ func (handler *InstalledAppRestHandlerImpl) FetchResourceTree(w http.ResponseWri
751758
apiError, ok := err.(*util2.ApiError)
752759
if ok && apiError != nil {
753760
if apiError.Code == constants.AppDetailResourceTreeNotFound && installedApp.DeploymentAppDeleteRequest == true {
754-
// TODO refactoring: should be performed in go routine
761+
// TODO refactoring: should be performed through nats
755762
err = handler.appStoreDeploymentService.MarkGitOpsInstalledAppsDeletedIfArgoAppIsDeleted(installedAppId, envId)
756763
appDeleteErr, appDeleteErrOk := err.(*util2.ApiError)
757764
if appDeleteErrOk && appDeleteErr != nil {

api/appStore/deployment/AppStoreDeploymentRestHandler.go

+57-39
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ import (
2222
"encoding/json"
2323
"errors"
2424
"fmt"
25+
client "github.com/devtron-labs/devtron/api/helm-app"
2526
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"
2728
"net/http"
2829
"strconv"
2930
"strings"
@@ -59,35 +60,41 @@ type AppStoreDeploymentRestHandler interface {
5960
}
6061

6162
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
7376
}
7477

7578
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 {
7985
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,
9198
}
9299
}
93100

@@ -139,7 +146,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) InstallApp(w http.ResponseWrite
139146
}
140147
//rbac block ends here
141148

142-
isChartRepoActive, err := handler.appStoreDeploymentService.IsChartRepoActive(request.AppStoreVersion)
149+
isChartRepoActive, err := handler.appStoreDeploymentDBService.IsChartProviderActive(request.AppStoreVersion)
143150
if err != nil {
144151
handler.Logger.Errorw("service err, CreateInstalledApp", "err", err, "payload", request)
145152
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
@@ -203,7 +210,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppsByAppStoreId(w
203210
}
204211
token := r.Header.Get("token")
205212
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)
207214
if err != nil {
208215
handler.Logger.Errorw("service err, GetInstalledAppsByAppStoreId", "err", err, "appStoreId", appStoreId)
209216
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
@@ -289,7 +296,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) DeleteInstalledApp(w http.Respo
289296

290297
handler.Logger.Infow("request payload, DeleteInstalledApp", "installAppId", installAppId)
291298
token := r.Header.Get("token")
292-
installedApp, err := handler.appStoreDeploymentService.GetInstalledApp(installAppId)
299+
installedApp, err := handler.appStoreDeploymentDBService.GetInstalledApp(installAppId)
293300
if err != nil {
294301
handler.Logger.Error(err)
295302
if err == pg.ErrNoRows {
@@ -432,7 +439,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) UpdateInstalledApp(w http.Respo
432439
}
433440
token := r.Header.Get("token")
434441
handler.Logger.Debugw("request payload, UpdateInstalledApp", "payload", request)
435-
installedApp, err := handler.appStoreDeploymentService.GetInstalledApp(request.InstalledAppId)
442+
installedApp, err := handler.appStoreDeploymentDBService.GetInstalledApp(request.InstalledAppId)
436443
if err != nil {
437444
handler.Logger.Errorw("service err, UpdateInstalledApp", "err", err, "payload", request)
438445
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
@@ -520,7 +527,7 @@ func (handler AppStoreDeploymentRestHandlerImpl) GetInstalledAppVersion(w http.R
520527
}
521528
token := r.Header.Get("token")
522529
handler.Logger.Infow("request payload, GetInstalledAppVersion", "installedAppVersionId", installedAppId)
523-
dto, err := handler.appStoreDeploymentService.GetInstalledAppVersion(installedAppId, userId)
530+
dto, err := handler.installAppService.GetInstalledAppVersion(installedAppId, userId)
524531
if err != nil {
525532
handler.Logger.Errorw("service err, GetInstalledAppVersion", "err", err, "installedAppVersionId", installedAppId)
526533
common.WriteJsonResp(w, err, nil, http.StatusInternalServerError)
@@ -585,18 +592,29 @@ func (handler AppStoreDeploymentRestHandlerImpl) UpdateProjectHelmApp(w http.Res
585592
return
586593
}
587594
} else {
588-
installedApp, err := handler.appStoreDeploymentService.GetInstalledApp(request.InstalledAppId)
595+
installedApp, err := handler.appStoreDeploymentDBService.GetInstalledApp(request.InstalledAppId)
589596
if err != nil {
590597
handler.Logger.Errorw("service err, InstalledAppId", "err", err, "InstalledAppId", request.InstalledAppId)
591598
common.WriteJsonResp(w, fmt.Errorf("Unable to fetch installed app details"), nil, http.StatusBadRequest)
592599
}
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+
}
600618
}
601619
}
602620
err = handler.appStoreDeploymentService.UpdateProjectHelmApp(&request)

api/appStore/deployment/wire_appStoreDeployment.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
)
1111

1212
var AppStoreDeploymentWireSet = wire.NewSet(
13-
service.GetDeploymentServiceTypeConfig,
13+
//util.GetDeploymentServiceTypeConfig,
1414
repository.NewClusterInstalledAppsRepositoryImpl,
1515
wire.Bind(new(repository.ClusterInstalledAppsRepository), new(*repository.ClusterInstalledAppsRepositoryImpl)),
1616
appStoreDeploymentCommon.NewAppStoreDeploymentCommonServiceImpl,
@@ -19,6 +19,8 @@ var AppStoreDeploymentWireSet = wire.NewSet(
1919
wire.Bind(new(EAMode.EAModeDeploymentService), new(*EAMode.EAModeDeploymentServiceImpl)),
2020
service.NewAppStoreDeploymentServiceImpl,
2121
wire.Bind(new(service.AppStoreDeploymentService), new(*service.AppStoreDeploymentServiceImpl)),
22+
service.NewAppStoreDeploymentDBServiceImpl,
23+
wire.Bind(new(service.AppStoreDeploymentDBService), new(*service.AppStoreDeploymentDBServiceImpl)),
2224
NewAppStoreDeploymentRestHandlerImpl,
2325
wire.Bind(new(AppStoreDeploymentRestHandler), new(*AppStoreDeploymentRestHandlerImpl)),
2426
NewAppStoreDeploymentRouterImpl,

api/appStore/values/AppStoreValuesRouter.go

+1
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,5 @@ func (router AppStoreValuesRouterImpl) Init(configRouter *mux.Router) {
5656

5757
configRouter.Path("/chart/selected/metadata").
5858
HandlerFunc(router.appStoreValuesRestHandler.GetSelectedChartMetadata).Methods("POST")
59+
5960
}

0 commit comments

Comments
 (0)