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}}
-