mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Move organization related structs into sub package (#18518)
* Move organization related structs into sub package * Fix test * Fix lint * Move more functions into sub packages * Fix bug * Fix test * Update models/organization/team_repo.go Co-authored-by: KN4CK3R <admin@oldschoolhack.me> * Apply suggestions from code review Co-authored-by: KN4CK3R <admin@oldschoolhack.me> * Fix fmt * Follow suggestion from @Gusted * Fix test * Fix test * Fix bug * Use ctx but db.DefaultContext on routers * Fix bug * Fix bug * fix bug * Update models/organization/team_user.go * Fix bug Co-authored-by: KN4CK3R <admin@oldschoolhack.me> Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		| @@ -4,12 +4,10 @@ | ||||
|  | ||||
| package context | ||||
|  | ||||
| import ( | ||||
| 	"code.gitea.io/gitea/models" | ||||
| ) | ||||
| import "code.gitea.io/gitea/models/organization" | ||||
|  | ||||
| // APIOrganization contains organization and team | ||||
| type APIOrganization struct { | ||||
| 	Organization *models.Organization | ||||
| 	Team         *models.Team | ||||
| 	Organization *organization.Organization | ||||
| 	Team         *organization.Team | ||||
| } | ||||
|   | ||||
| @@ -8,7 +8,7 @@ package context | ||||
| import ( | ||||
| 	"strings" | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/models/organization" | ||||
| 	"code.gitea.io/gitea/models/perm" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| ) | ||||
| @@ -19,12 +19,12 @@ type Organization struct { | ||||
| 	IsMember         bool | ||||
| 	IsTeamMember     bool // Is member of team. | ||||
| 	IsTeamAdmin      bool // In owner team or team that has admin permission level. | ||||
| 	Organization     *models.Organization | ||||
| 	Organization     *organization.Organization | ||||
| 	OrgLink          string | ||||
| 	CanCreateOrgRepo bool | ||||
|  | ||||
| 	Team  *models.Team | ||||
| 	Teams []*models.Team | ||||
| 	Team  *organization.Team | ||||
| 	Teams []*organization.Team | ||||
| } | ||||
|  | ||||
| // HandleOrgAssignment handles organization assignment | ||||
| @@ -51,9 +51,9 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { | ||||
| 	orgName := ctx.Params(":org") | ||||
|  | ||||
| 	var err error | ||||
| 	ctx.Org.Organization, err = models.GetOrgByName(orgName) | ||||
| 	ctx.Org.Organization, err = organization.GetOrgByName(orgName) | ||||
| 	if err != nil { | ||||
| 		if models.IsErrOrgNotExist(err) { | ||||
| 		if organization.IsErrOrgNotExist(err) { | ||||
| 			redirectUserID, err := user_model.LookupUserRedirect(orgName) | ||||
| 			if err == nil { | ||||
| 				RedirectToUser(ctx, orgName, redirectUserID) | ||||
| @@ -120,7 +120,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) { | ||||
| 	ctx.Data["IsOrganizationOwner"] = ctx.Org.IsOwner | ||||
| 	ctx.Data["IsOrganizationMember"] = ctx.Org.IsMember | ||||
| 	ctx.Data["IsPublicMember"] = func(uid int64) bool { | ||||
| 		is, _ := models.IsPublicMembership(ctx.Org.Organization.ID, uid) | ||||
| 		is, _ := organization.IsPublicMembership(ctx.Org.Organization.ID, uid) | ||||
| 		return is | ||||
| 	} | ||||
| 	ctx.Data["CanCreateOrgRepo"] = ctx.Org.CanCreateOrgRepo | ||||
|   | ||||
| @@ -14,6 +14,7 @@ import ( | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	asymkey_model "code.gitea.io/gitea/models/asymkey" | ||||
| 	"code.gitea.io/gitea/models/auth" | ||||
| 	"code.gitea.io/gitea/models/organization" | ||||
| 	"code.gitea.io/gitea/models/perm" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	"code.gitea.io/gitea/models/unit" | ||||
| @@ -98,15 +99,15 @@ func ToBranchProtection(bp *models.ProtectedBranch) *api.BranchProtection { | ||||
| 	if err != nil { | ||||
| 		log.Error("GetUserNamesByIDs (ApprovalsWhitelistUserIDs): %v", err) | ||||
| 	} | ||||
| 	pushWhitelistTeams, err := models.GetTeamNamesByID(bp.WhitelistTeamIDs) | ||||
| 	pushWhitelistTeams, err := organization.GetTeamNamesByID(bp.WhitelistTeamIDs) | ||||
| 	if err != nil { | ||||
| 		log.Error("GetTeamNamesByID (WhitelistTeamIDs): %v", err) | ||||
| 	} | ||||
| 	mergeWhitelistTeams, err := models.GetTeamNamesByID(bp.MergeWhitelistTeamIDs) | ||||
| 	mergeWhitelistTeams, err := organization.GetTeamNamesByID(bp.MergeWhitelistTeamIDs) | ||||
| 	if err != nil { | ||||
| 		log.Error("GetTeamNamesByID (MergeWhitelistTeamIDs): %v", err) | ||||
| 	} | ||||
| 	approvalsWhitelistTeams, err := models.GetTeamNamesByID(bp.ApprovalsWhitelistTeamIDs) | ||||
| 	approvalsWhitelistTeams, err := organization.GetTeamNamesByID(bp.ApprovalsWhitelistTeamIDs) | ||||
| 	if err != nil { | ||||
| 		log.Error("GetTeamNamesByID (ApprovalsWhitelistTeamIDs): %v", err) | ||||
| 	} | ||||
| @@ -280,7 +281,7 @@ func ToDeployKey(apiLink string, key *asymkey_model.DeployKey) *api.DeployKey { | ||||
| } | ||||
|  | ||||
| // ToOrganization convert user_model.User to api.Organization | ||||
| func ToOrganization(org *models.Organization) *api.Organization { | ||||
| func ToOrganization(org *organization.Organization) *api.Organization { | ||||
| 	return &api.Organization{ | ||||
| 		ID:                        org.ID, | ||||
| 		AvatarURL:                 org.AsUser().AvatarLink(), | ||||
| @@ -294,8 +295,8 @@ func ToOrganization(org *models.Organization) *api.Organization { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // ToTeam convert models.Team to api.Team | ||||
| func ToTeam(team *models.Team) *api.Team { | ||||
| // ToTeam convert organization.Team to api.Team | ||||
| func ToTeam(team *organization.Team) *api.Team { | ||||
| 	if team == nil { | ||||
| 		return nil | ||||
| 	} | ||||
|   | ||||
| @@ -10,6 +10,7 @@ import ( | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/models/organization" | ||||
| 	"code.gitea.io/gitea/models/perm" | ||||
| 	"code.gitea.io/gitea/models/unittest" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| @@ -22,13 +23,13 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) { | ||||
| 	assert.NoError(t, unittest.PrepareTestDatabase()) | ||||
|  | ||||
| 	testTeamRepositories := func(teamID int64, repoIds []int64) { | ||||
| 		team := unittest.AssertExistsAndLoadBean(t, &models.Team{ID: teamID}).(*models.Team) | ||||
| 		assert.NoError(t, team.GetRepositories(&models.SearchOrgTeamOptions{}), "%s: GetRepositories", team.Name) | ||||
| 		team := unittest.AssertExistsAndLoadBean(t, &organization.Team{ID: teamID}).(*organization.Team) | ||||
| 		assert.NoError(t, team.GetRepositoriesCtx(db.DefaultContext), "%s: GetRepositories", team.Name) | ||||
| 		assert.Len(t, team.Repos, team.NumRepos, "%s: len repo", team.Name) | ||||
| 		assert.Len(t, team.Repos, len(repoIds), "%s: repo count", team.Name) | ||||
| 		for i, rid := range repoIds { | ||||
| 			if rid > 0 { | ||||
| 				assert.True(t, team.HasRepository(rid), "%s: HasRepository(%d) %d", rid, i) | ||||
| 				assert.True(t, models.HasRepository(team, rid), "%s: HasRepository(%d) %d", rid, i) | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| @@ -38,13 +39,13 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) { | ||||
| 	assert.NoError(t, err, "GetUserByID") | ||||
|  | ||||
| 	// Create org. | ||||
| 	org := &models.Organization{ | ||||
| 	org := &organization.Organization{ | ||||
| 		Name:       "All_repo", | ||||
| 		IsActive:   true, | ||||
| 		Type:       user_model.UserTypeOrganization, | ||||
| 		Visibility: structs.VisibleTypePublic, | ||||
| 	} | ||||
| 	assert.NoError(t, models.CreateOrganization(org, user), "CreateOrganization") | ||||
| 	assert.NoError(t, organization.CreateOrganization(org, user), "CreateOrganization") | ||||
|  | ||||
| 	// Check Owner team. | ||||
| 	ownerTeam, err := org.GetOwnerTeam() | ||||
| @@ -65,7 +66,7 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) { | ||||
| 	assert.NoError(t, err, "GetOwnerTeam") | ||||
|  | ||||
| 	// Create teams and check repositories. | ||||
| 	teams := []*models.Team{ | ||||
| 	teams := []*organization.Team{ | ||||
| 		ownerTeam, | ||||
| 		{ | ||||
| 			OrgID:                   org.ID, | ||||
| @@ -144,5 +145,5 @@ func TestIncludesAllRepositoriesTeams(t *testing.T) { | ||||
| 			assert.NoError(t, models.DeleteRepository(user, org.ID, rid), "DeleteRepository %d", i) | ||||
| 		} | ||||
| 	} | ||||
| 	assert.NoError(t, models.DeleteOrganization(db.DefaultContext, org), "DeleteOrganization") | ||||
| 	assert.NoError(t, organization.DeleteOrganization(db.DefaultContext, org), "DeleteOrganization") | ||||
| } | ||||
|   | ||||
| @@ -15,6 +15,7 @@ import ( | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
| 	"code.gitea.io/gitea/models/organization" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| 	"code.gitea.io/gitea/modules/git" | ||||
| @@ -55,7 +56,7 @@ func MigrateRepositoryGitData(ctx context.Context, u *user_model.User, | ||||
| 	repoPath := repo_model.RepoPath(u.Name, opts.RepoName) | ||||
|  | ||||
| 	if u.IsOrganization() { | ||||
| 		t, err := models.OrgFromUser(u).GetOwnerTeam() | ||||
| 		t, err := organization.OrgFromUser(u).GetOwnerTeam() | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
|   | ||||
| @@ -25,6 +25,7 @@ import ( | ||||
|  | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/models/avatars" | ||||
| 	"code.gitea.io/gitea/models/organization" | ||||
| 	repo_model "code.gitea.io/gitea/models/repo" | ||||
| 	user_model "code.gitea.io/gitea/models/user" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
| @@ -569,7 +570,7 @@ func Avatar(item interface{}, others ...interface{}) template.HTML { | ||||
| 		if src != "" { | ||||
| 			return AvatarHTML(src, size, class, t.DisplayName()) | ||||
| 		} | ||||
| 	case *models.Organization: | ||||
| 	case *organization.Organization: | ||||
| 		src := t.AsUser().AvatarLinkWithSize(size * setting.Avatar.RenderedSizeFactor) | ||||
| 		if src != "" { | ||||
| 			return AvatarHTML(src, size, class, t.AsUser().DisplayName()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user