From 4b470922a7cd7df466d6a47586b9978cf2788987 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Wed, 23 Aug 2023 08:09:56 +0000 Subject: [PATCH 1/4] add --- modules/doctor/fix8312.go | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 modules/doctor/fix8312.go diff --git a/modules/doctor/fix8312.go b/modules/doctor/fix8312.go new file mode 100644 index 0000000000000..48e637d0fb3c7 --- /dev/null +++ b/modules/doctor/fix8312.go @@ -0,0 +1,60 @@ +// Copyright 2023 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT + +package doctor + +import ( + "context" + + "code.gitea.io/gitea/models" + "code.gitea.io/gitea/models/db" + org_model "code.gitea.io/gitea/models/organization" + "code.gitea.io/gitea/models/perm" + "code.gitea.io/gitea/modules/log" + "xorm.io/builder" +) + +func fixIncorrectCreateOrgRepoPermission(ctx context.Context, logger log.Logger, autofix bool) error { + count := 0 + + err := db.Iterate( + ctx, + builder.Eq{"authorize": perm.AccessModeOwner, "can_create_org_repo": false}, + func(ctx context.Context, team *org_model.Team) error { + team.CanCreateOrgRepo = true + count++ + + if !autofix { + return nil + } + + return models.UpdateTeam(team, false, false) + }, + ) + if err != nil { + logger.Critical("Unable to iterate across repounits to fix incorrect can_create_org_repo: Error %v", err) + return err + } + + if !autofix { + if count == 0 { + logger.Info("Found no team with incorrect can_create_org_repo") + } else { + logger.Warn("Found %d teams with incorrect can_create_org_repo", count) + } + return nil + } + logger.Info("Fixed %d teams with incorrect can_create_org_repo", count) + + return nil +} + +func init() { + Register(&Check{ + Title: "Check for incorrect can_create_org_repo for org owner teams", + Name: "fix-incorrect-create-org-repo-permission", + IsDefault: false, + Run: fixIncorrectCreateOrgRepoPermission, + Priority: 7, + }) +} From d6f5684ec28665f19ee7b09094cb9e935d67539d Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Thu, 24 Aug 2023 01:00:01 +0000 Subject: [PATCH 2/4] fix lint --- modules/doctor/fix8312.go | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/doctor/fix8312.go b/modules/doctor/fix8312.go index 48e637d0fb3c7..82ec6e04aaf55 100644 --- a/modules/doctor/fix8312.go +++ b/modules/doctor/fix8312.go @@ -11,6 +11,7 @@ import ( org_model "code.gitea.io/gitea/models/organization" "code.gitea.io/gitea/models/perm" "code.gitea.io/gitea/modules/log" + "xorm.io/builder" ) From 9c5a36b56e6e77e44fc19e62f91e4ac77692ae74 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Mon, 28 Aug 2023 09:44:08 +0900 Subject: [PATCH 3/4] Update modules/doctor/fix8312.go Co-authored-by: wxiaoguang --- modules/doctor/fix8312.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/doctor/fix8312.go b/modules/doctor/fix8312.go index 82ec6e04aaf55..3379a8280d0a0 100644 --- a/modules/doctor/fix8312.go +++ b/modules/doctor/fix8312.go @@ -53,7 +53,7 @@ func fixIncorrectCreateOrgRepoPermission(ctx context.Context, logger log.Logger, func init() { Register(&Check{ Title: "Check for incorrect can_create_org_repo for org owner teams", - Name: "fix-incorrect-create-org-repo-permission", + Name: "fix-owner-team-create-org", IsDefault: false, Run: fixIncorrectCreateOrgRepoPermission, Priority: 7, From 03e4b78ea881ac9ab5afaacd517453557ba969e4 Mon Sep 17 00:00:00 2001 From: yp05327 <576951401@qq.com> Date: Mon, 28 Aug 2023 00:48:19 +0000 Subject: [PATCH 4/4] rename --- modules/doctor/fix8312.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/doctor/fix8312.go b/modules/doctor/fix8312.go index 3379a8280d0a0..8de3113663b9f 100644 --- a/modules/doctor/fix8312.go +++ b/modules/doctor/fix8312.go @@ -15,7 +15,7 @@ import ( "xorm.io/builder" ) -func fixIncorrectCreateOrgRepoPermission(ctx context.Context, logger log.Logger, autofix bool) error { +func fixOwnerTeamCreateOrgRepo(ctx context.Context, logger log.Logger, autofix bool) error { count := 0 err := db.Iterate( @@ -53,9 +53,9 @@ func fixIncorrectCreateOrgRepoPermission(ctx context.Context, logger log.Logger, func init() { Register(&Check{ Title: "Check for incorrect can_create_org_repo for org owner teams", - Name: "fix-owner-team-create-org", + Name: "fix-owner-team-create-org-repo", IsDefault: false, - Run: fixIncorrectCreateOrgRepoPermission, + Run: fixOwnerTeamCreateOrgRepo, Priority: 7, }) }