Skip to content

Commit 8e066c2

Browse files
committed
Use standalone function to update repository cols
1 parent ddd1e6c commit 8e066c2

File tree

2 files changed

+29
-18
lines changed

2 files changed

+29
-18
lines changed

routers/web/repo/setting/setting.go

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -663,44 +663,35 @@ func handleSettingsPostAdvanced(ctx *context.Context) {
663663
func handleSettingsPostSigning(ctx *context.Context) {
664664
form := web.GetForm(ctx).(*forms.RepoSettingForm)
665665
repo := ctx.Repo.Repository
666-
changed := false
667666
trustModel := repo_model.ToTrustModel(form.TrustModel)
668667
if trustModel != repo.TrustModel {
669-
repo.TrustModel = trustModel
670-
changed = true
671-
}
672-
673-
if changed {
674-
if err := repo_service.UpdateRepository(ctx, repo, false); err != nil {
668+
if err := repo_service.UpdateRepositoryTrustModel(ctx, repo, trustModel); err != nil {
675669
ctx.ServerError("UpdateRepository", err)
676670
return
677671
}
672+
log.Trace("Repository signing settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name)
678673
}
679-
log.Trace("Repository signing settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name)
680674

681675
ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success"))
682676
ctx.Redirect(ctx.Repo.RepoLink + "/settings")
683677
}
684678

685679
func handleSettingsPostAdmin(ctx *context.Context) {
686-
form := web.GetForm(ctx).(*forms.RepoSettingForm)
687-
repo := ctx.Repo.Repository
688680
if !ctx.Doer.IsAdmin {
689681
ctx.HTTPError(http.StatusForbidden)
690682
return
691683
}
692684

685+
repo := ctx.Repo.Repository
686+
form := web.GetForm(ctx).(*forms.RepoSettingForm)
693687
if repo.IsFsckEnabled != form.EnableHealthCheck {
694-
repo.IsFsckEnabled = form.EnableHealthCheck
695-
}
696-
697-
if err := repo_service.UpdateRepository(ctx, repo, false); err != nil {
698-
ctx.ServerError("UpdateRepository", err)
699-
return
688+
if err := repo_service.UpdateRepositoryHealthCheck(ctx, repo, form.EnableHealthCheck); err != nil {
689+
ctx.ServerError("UpdateRepository", err)
690+
return
691+
}
692+
log.Trace("Repository admin settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name)
700693
}
701694

702-
log.Trace("Repository admin settings updated: %s/%s", ctx.Repo.Owner.Name, repo.Name)
703-
704695
ctx.Flash.Success(ctx.Tr("repo.settings.update_settings_success"))
705696
ctx.Redirect(ctx.Repo.RepoLink + "/settings")
706697
}

services/repository/repository.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,26 @@ func UpdateRepository(ctx context.Context, repo *repo_model.Repository, visibili
124124
})
125125
}
126126

127+
func UpdateRepositoryTrustModel(ctx context.Context, repo *repo_model.Repository, trustModel repo_model.TrustModelType) (err error) {
128+
return db.WithTx(ctx, func(ctx context.Context) error {
129+
repo.TrustModel = trustModel
130+
if err := repo_model.UpdateRepositoryColsNoAutoTime(ctx, repo, "trust_model"); err != nil {
131+
return fmt.Errorf("UpdateRepositoryColsNoAutoTime: %w", err)
132+
}
133+
return nil
134+
})
135+
}
136+
137+
func UpdateRepositoryHealthCheck(ctx context.Context, repo *repo_model.Repository, healthCheckEnabled bool) (err error) {
138+
return db.WithTx(ctx, func(ctx context.Context) error {
139+
repo.IsFsckEnabled = healthCheckEnabled
140+
if err := repo_model.UpdateRepositoryColsNoAutoTime(ctx, repo, "is_fsck_enabled"); err != nil {
141+
return fmt.Errorf("UpdateRepositoryColsNoAutoTime: %w", err)
142+
}
143+
return nil
144+
})
145+
}
146+
127147
func MakeRepoPublic(ctx context.Context, repo *repo_model.Repository) (err error) {
128148
return db.WithTx(ctx, func(ctx context.Context) error {
129149
repo.IsPrivate = false

0 commit comments

Comments
 (0)