From b9b30261221cf542523acd8d234b186794fad2db Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 31 May 2026 11:03:42 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20resolve=20tech-debt=20batch=203=20?= =?UTF-8?q?=E2=80=94=20remove=20deprecated=20functions,=20use=20stdlib?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - refactor(go): replace ValuesRepository with maps.Values (Go 1.21+) - refactor(go): remove CanEnableEditor wrapper, use CanContentChange directly - chore: remove stale TODO comments about project column route naming Refs #311, #317 Co-Authored-By: Claude Opus 4.6 (1M context) --- models/repo/repo.go | 8 +------- models/repo/repo_list.go | 11 ++++------- routers/api/v1/api.go | 2 +- routers/web/repo/editor.go | 2 +- routers/web/repo/repo.go | 2 +- routers/web/repo/view_file.go | 2 +- routers/web/repo/view_readme.go | 2 +- routers/web/web.go | 2 -- services/context/repo.go | 2 +- templates/repo/diff/box.tmpl | 2 +- templates/repo/view_content.tmpl | 2 +- templates/repo/view_file.tmpl | 2 +- 12 files changed, 14 insertions(+), 25 deletions(-) diff --git a/models/repo/repo.go b/models/repo/repo.go index eb83face62..23f9d2b501 100644 --- a/models/repo/repo.go +++ b/models/repo/repo.go @@ -634,13 +634,7 @@ func (repo *Repository) AllowsPulls(ctx context.Context) bool { return repo.CanEnablePulls() && repo.UnitEnabled(ctx, unit.TypePullRequests) } -// CanEnableEditor returns true if repository meets the requirements of web editor. -// FIXME: most CanEnableEditor calls should be replaced with CanContentChange -// And all other like CanCreateBranch / CanEnablePulls should also be updated -func (repo *Repository) CanEnableEditor() bool { - return repo.CanContentChange() -} - +// CanContentChange returns true if repository content can be modified (not a mirror and not archived). func (repo *Repository) CanContentChange() bool { return !repo.IsMirror && !repo.IsArchived } diff --git a/models/repo/repo_list.go b/models/repo/repo_list.go index d2ce197302..b8d3c5f8e7 100644 --- a/models/repo/repo_list.go +++ b/models/repo/repo_list.go @@ -12,6 +12,8 @@ import ( "code.mokoconsulting.tech/MokoConsulting/MokoGitea/models/perm" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/models/unit" user_model "code.mokoconsulting.tech/MokoConsulting/MokoGitea/models/user" + "maps" + "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/container" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/optional" "code.mokoconsulting.tech/MokoConsulting/MokoGitea/modules/setting" @@ -44,18 +46,13 @@ func (repos RepositoryList) Swap(i, j int) { } // ValuesRepository converts a repository map to a list -// FIXME: Remove in favor of maps.values when MIN_GO_VERSION >= 1.18 func ValuesRepository(m map[int64]*Repository) []*Repository { - values := make([]*Repository, 0, len(m)) - for _, v := range m { - values = append(values, v) - } - return values + return maps.Values(m) } // RepositoryListOfMap make list from values of map func RepositoryListOfMap(repoMap map[int64]*Repository) RepositoryList { - return RepositoryList(ValuesRepository(repoMap)) + return RepositoryList(maps.Values(repoMap)) } func (repos RepositoryList) LoadUnits(ctx context.Context) error { diff --git a/routers/api/v1/api.go b/routers/api/v1/api.go index 8551fd0252..59dd7dcb5a 100644 --- a/routers/api/v1/api.go +++ b/routers/api/v1/api.go @@ -740,7 +740,7 @@ func mustNotBeArchived(ctx *context.APIContext) { } func mustEnableEditor(ctx *context.APIContext) { - if !ctx.Repo.Repository.CanEnableEditor() { + if !ctx.Repo.Repository.CanContentChange() { ctx.APIError(http.StatusLocked, fmt.Errorf("%s is not allowed to edit", ctx.Repo.Repository.FullName())) return } diff --git a/routers/web/repo/editor.go b/routers/web/repo/editor.go index c7c6cb968f..6b5fa2e1f5 100644 --- a/routers/web/repo/editor.go +++ b/routers/web/repo/editor.go @@ -67,7 +67,7 @@ func prepareEditorPageFormOptions(ctx *context.Context, editorAction string) *co return nil } - if commitFormOptions.WillSubmitToFork && !commitFormOptions.TargetRepo.CanEnableEditor() { + if commitFormOptions.WillSubmitToFork && !commitFormOptions.TargetRepo.CanContentChange() { ctx.Data["NotFoundPrompt"] = ctx.Locale.Tr("repo.editor.fork_not_editable") ctx.NotFound(nil) } diff --git a/routers/web/repo/repo.go b/routers/web/repo/repo.go index b70b7a6733..899c3e00c1 100644 --- a/routers/web/repo/repo.go +++ b/routers/web/repo/repo.go @@ -50,7 +50,7 @@ func MustBeNotEmpty(ctx *context.Context) { // MustBeEditable check that repo can be edited func MustBeEditable(ctx *context.Context) { - if !ctx.Repo.Repository.CanEnableEditor() { + if !ctx.Repo.Repository.CanContentChange() { ctx.NotFound(nil) return } diff --git a/routers/web/repo/view_file.go b/routers/web/repo/view_file.go index e81b9bdba2..b24c414753 100644 --- a/routers/web/repo/view_file.go +++ b/routers/web/repo/view_file.go @@ -255,7 +255,7 @@ func prepareFileView(ctx *context.Context, entry *git.TreeEntry) { func prepareFileViewEditorButtons(ctx *context.Context) bool { // archived or mirror repository, the buttons should not be shown - if !ctx.Repo.Repository.CanEnableEditor() { + if !ctx.Repo.Repository.CanContentChange() { return true } diff --git a/routers/web/repo/view_readme.go b/routers/web/repo/view_readme.go index b55c1c3ea5..27a19ed15c 100644 --- a/routers/web/repo/view_readme.go +++ b/routers/web/repo/view_readme.go @@ -218,7 +218,7 @@ func prepareToRenderReadmeFile(ctx *context.Context, subfolder string, readmeFil ctx.Data["EscapeStatus"], ctx.Data["FileContent"] = charset.EscapeControlHTML(template.HTML(contentEscaped), ctx.Locale) } - if !fInfo.isLFSFile() && ctx.Repo.Repository.CanEnableEditor() { + if !fInfo.isLFSFile() && ctx.Repo.Repository.CanContentChange() { ctx.Data["CanEditReadmeFile"] = true } } diff --git a/routers/web/web.go b/routers/web/web.go index 16609b3dca..342c851f58 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -1138,7 +1138,6 @@ func registerWebRoutes(m *web.Router, webAuth *AuthMiddleware) { m.Post("/edit", web.Bind(forms.CreateProjectForm{}), org.EditProjectPost) m.Post("/{action:open|close}", org.ChangeProjectStatus) - // TODO: improper name. Others are "delete project", "edit project", but this one is "move columns" m.Post("/move", project.MoveColumns) m.Post("/columns/new", web.Bind(forms.EditProjectColumnForm{}), org.AddColumnToProjectPost) m.Group("/{columnID}", func() { @@ -1568,7 +1567,6 @@ func registerWebRoutes(m *web.Router, webAuth *AuthMiddleware) { m.Post("/edit", web.Bind(forms.CreateProjectForm{}), repo.EditProjectPost) m.Post("/{action:open|close}", repo.ChangeProjectStatus) - // TODO: improper name. Others are "delete project", "edit project", but this one is "move columns" m.Post("/move", project.MoveColumns) m.Post("/columns/new", web.Bind(forms.EditProjectColumnForm{}), repo.AddColumnToProjectPost) m.Group("/{columnID}", func() { diff --git a/services/context/repo.go b/services/context/repo.go index f5b7963bdb..c13f96c704 100644 --- a/services/context/repo.go +++ b/services/context/repo.go @@ -190,7 +190,7 @@ func PrepareCommitFormOptions(ctx *Context, doer *user_model.User, targetRepo *r return nil, err } - canCommitToBranch := !submitToForkedRepo /* same repo */ && targetRepo.CanEnableEditor() && canPushWithProtection + canCommitToBranch := !submitToForkedRepo /* same repo */ && targetRepo.CanContentChange() && canPushWithProtection if protectionRequireSigned { canCommitToBranch = canCommitToBranch && willSign } diff --git a/templates/repo/diff/box.tmpl b/templates/repo/diff/box.tmpl index 463575b84d..9e09b70171 100644 --- a/templates/repo/diff/box.tmpl +++ b/templates/repo/diff/box.tmpl @@ -148,7 +148,7 @@ {{ctx.Locale.Tr "repo.diff.view_file"}} {{else}} {{ctx.Locale.Tr "repo.diff.view_file"}} - {{if and $.Repository.CanEnableEditor $.CanEditFile}} + {{if and $.Repository.CanContentChange $.CanEditFile}} {{ctx.Locale.Tr "repo.editor.edit_this_file"}} {{end}} {{end}} diff --git a/templates/repo/view_content.tmpl b/templates/repo/view_content.tmpl index 3413c09a6a..b2286162ba 100644 --- a/templates/repo/view_content.tmpl +++ b/templates/repo/view_content.tmpl @@ -70,7 +70,7 @@ {{$addFilePath = ""}} {{end}} {{end}} -