diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2022-05-20 22:08:52 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-20 22:08:52 +0800 |
commit | fd7d83ace60258acf7139c4c787aa8af75b7ba8c (patch) | |
tree | 50038348ec10485f72344f3ac80324e04abc1283 /models/organization | |
parent | d81e31ad7826a81fc7139f329f250594610a274b (diff) | |
download | gitea-fd7d83ace60258acf7139c4c787aa8af75b7ba8c.tar.gz gitea-fd7d83ace60258acf7139c4c787aa8af75b7ba8c.zip |
Move almost all functions' parameter db.Engine to context.Context (#19748)
* Move almost all functions' parameter db.Engine to context.Context
* remove some unnecessary wrap functions
Diffstat (limited to 'models/organization')
-rw-r--r-- | models/organization/org.go | 65 | ||||
-rw-r--r-- | models/organization/org_test.go | 39 | ||||
-rw-r--r-- | models/organization/org_user_test.go | 4 | ||||
-rw-r--r-- | models/organization/team.go | 31 | ||||
-rw-r--r-- | models/organization/team_test.go | 10 |
5 files changed, 35 insertions, 114 deletions
diff --git a/models/organization/org.go b/models/organization/org.go index 43d96793b1..0d4a5e337b 100644 --- a/models/organization/org.go +++ b/models/organization/org.go @@ -102,7 +102,7 @@ func (org *Organization) CanCreateOrgRepo(uid int64) (bool, error) { } func (org *Organization) getTeam(ctx context.Context, name string) (*Team, error) { - return getTeam(ctx, org.ID, name) + return GetTeam(ctx, org.ID, name) } // GetTeam returns named team of organization. @@ -203,7 +203,7 @@ func CountOrgMembers(opts *FindOrgMembersOpts) (int64, error) { // FindOrgMembers loads organization members according conditions func FindOrgMembers(opts *FindOrgMembersOpts) (user_model.UserList, map[int64]bool, error) { - ous, err := GetOrgUsersByOrgID(opts) + ous, err := GetOrgUsersByOrgID(db.DefaultContext, opts) if err != nil { return nil, nil, err } @@ -248,7 +248,7 @@ func CreateOrganization(org *Organization, owner *user_model.User) (err error) { return err } - isExist, err := user_model.IsUserExist(0, org.Name) + isExist, err := user_model.IsUserExist(db.DefaultContext, 0, org.Name) if err != nil { return err } else if isExist { @@ -281,7 +281,7 @@ func CreateOrganization(org *Organization, owner *user_model.User) (err error) { if err = db.Insert(ctx, org); err != nil { return fmt.Errorf("insert organization: %v", err) } - if err = user_model.GenerateRandomAvatarCtx(ctx, org.AsUser()); err != nil { + if err = user_model.GenerateRandomAvatar(ctx, org.AsUser()); err != nil { return fmt.Errorf("generate random avatar: %v", err) } @@ -350,14 +350,6 @@ func GetOrgByName(name string) (*Organization, error) { return u, nil } -// CountOrganizations returns number of organizations. -func CountOrganizations() int64 { - count, _ := db.GetEngine(db.DefaultContext). - Where("type=1"). - Count(new(Organization)) - return count -} - // DeleteOrganization deletes models associated to an organization. func DeleteOrganization(ctx context.Context, org *Organization) error { if org.Type != user_model.UserTypeOrganization { @@ -425,7 +417,7 @@ func queryUserOrgIDs(userID int64, includePrivate bool) *builder.Builder { } func (opts FindOrgOptions) toConds() builder.Cond { - cond := builder.NewCond() + var cond builder.Cond = builder.Eq{"`user`.`type`": user_model.UserTypeOrganization} if opts.UserID > 0 { cond = cond.And(builder.In("`user`.`id`", queryUserOrgIDs(opts.UserID, opts.IncludePrivate))) } @@ -451,18 +443,7 @@ func FindOrgs(opts FindOrgOptions) ([]*Organization, error) { func CountOrgs(opts FindOrgOptions) (int64, error) { return db.GetEngine(db.DefaultContext). Where(opts.toConds()). - Count(new(user_model.User)) -} - -func getOwnedOrgsByUserID(sess db.Engine, userID int64) ([]*Organization, error) { - orgs := make([]*Organization, 0, 10) - return orgs, sess. - Join("INNER", "`team_user`", "`team_user`.org_id=`user`.id"). - Join("INNER", "`team`", "`team`.id=`team_user`.team_id"). - Where("`team_user`.uid=?", userID). - And("`team`.authorize=?", perm.AccessModeOwner). - Asc("`user`.name"). - Find(&orgs) + Count(new(Organization)) } // HasOrgOrUserVisible tells if the given user can see the given org or user @@ -496,17 +477,6 @@ func HasOrgsVisible(orgs []*Organization, user *user_model.User) bool { return false } -// GetOwnedOrgsByUserID returns a list of organizations are owned by given user ID. -func GetOwnedOrgsByUserID(userID int64) ([]*Organization, error) { - return getOwnedOrgsByUserID(db.GetEngine(db.DefaultContext), userID) -} - -// GetOwnedOrgsByUserIDDesc returns a list of organizations are owned by -// given user ID, ordered descending by the given condition. -func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*Organization, error) { - return getOwnedOrgsByUserID(db.GetEngine(db.DefaultContext).Desc(desc), userID) -} - // GetOrgsCanCreateRepoByUserID returns a list of organizations where given user ID // are allowed to create repos. func GetOrgsCanCreateRepoByUserID(userID int64) ([]*Organization, error) { @@ -543,12 +513,8 @@ func GetOrgUsersByUserID(uid int64, opts *SearchOrganizationsOptions) ([]*OrgUse } // GetOrgUsersByOrgID returns all organization-user relations by organization ID. -func GetOrgUsersByOrgID(opts *FindOrgMembersOpts) ([]*OrgUser, error) { - return getOrgUsersByOrgID(db.GetEngine(db.DefaultContext), opts) -} - -func getOrgUsersByOrgID(e db.Engine, opts *FindOrgMembersOpts) ([]*OrgUser, error) { - sess := e.Where("org_id=?", opts.OrgID) +func GetOrgUsersByOrgID(ctx context.Context, opts *FindOrgMembersOpts) ([]*OrgUser, error) { + sess := db.GetEngine(ctx).Where("org_id=?", opts.OrgID) if opts.PublicOnly { sess.And("is_public = ?", true) } @@ -615,8 +581,8 @@ func AddOrgUser(orgID, uid int64) error { return committer.Commit() } -// GetOrgByIDCtx returns the user object by given ID if exists. -func GetOrgByIDCtx(ctx context.Context, id int64) (*Organization, error) { +// GetOrgByID returns the user object by given ID if exists. +func GetOrgByID(ctx context.Context, id int64) (*Organization, error) { u := new(Organization) has, err := db.GetEngine(ctx).ID(id).Get(u) if err != nil { @@ -631,11 +597,6 @@ func GetOrgByIDCtx(ctx context.Context, id int64) (*Organization, error) { return u, nil } -// GetOrgByID returns the user object by given ID if exists. -func GetOrgByID(id int64) (*Organization, error) { - return GetOrgByIDCtx(db.DefaultContext, id) -} - // RemoveOrgRepo removes all team-repository relations of organization. func RemoveOrgRepo(ctx context.Context, orgID, repoID int64) error { teamRepos := make([]*TeamRepo, 0, 10) @@ -664,9 +625,9 @@ func RemoveOrgRepo(ctx context.Context, orgID, repoID int64) error { return err } -func (org *Organization) getUserTeams(e db.Engine, userID int64, cols ...string) ([]*Team, error) { +func (org *Organization) getUserTeams(ctx context.Context, userID int64, cols ...string) ([]*Team, error) { teams := make([]*Team, 0, org.NumTeams) - return teams, e. + return teams, db.GetEngine(ctx). Where("`team_user`.org_id = ?", org.ID). Join("INNER", "team_user", "`team_user`.team_id = team.id"). Join("INNER", "`user`", "`user`.id=team_user.uid"). @@ -700,7 +661,7 @@ func (org *Organization) GetUserTeamIDs(userID int64) ([]int64, error) { // GetUserTeams returns all teams that belong to user, // and that the user has joined. func (org *Organization) GetUserTeams(userID int64) ([]*Team, error) { - return org.getUserTeams(db.GetEngine(db.DefaultContext), userID) + return org.getUserTeams(db.DefaultContext, userID) } // AccessibleReposEnvironment operations involving the repositories that are diff --git a/models/organization/org_test.go b/models/organization/org_test.go index 71cdbd869f..b408a2f36e 100644 --- a/models/organization/org_test.go +++ b/models/organization/org_test.go @@ -128,9 +128,11 @@ func TestGetOrgByName(t *testing.T) { func TestCountOrganizations(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) - expected, err := db.GetEngine(db.DefaultContext).Where("type=?", user_model.UserTypeOrganization).Count(&user_model.User{}) + expected, err := db.GetEngine(db.DefaultContext).Where("type=?", user_model.UserTypeOrganization).Count(&Organization{}) assert.NoError(t, err) - assert.Equal(t, expected, CountOrganizations()) + cnt, err := CountOrgs(FindOrgOptions{IncludePrivate: true}) + assert.NoError(t, err) + assert.Equal(t, expected, cnt) } func TestIsOrganizationOwner(t *testing.T) { @@ -204,35 +206,6 @@ func TestFindOrgs(t *testing.T) { assert.EqualValues(t, 1, total) } -func TestGetOwnedOrgsByUserID(t *testing.T) { - assert.NoError(t, unittest.PrepareTestDatabase()) - - orgs, err := GetOwnedOrgsByUserID(2) - assert.NoError(t, err) - if assert.Len(t, orgs, 1) { - assert.EqualValues(t, 3, orgs[0].ID) - } - - orgs, err = GetOwnedOrgsByUserID(4) - assert.NoError(t, err) - assert.Len(t, orgs, 0) -} - -func TestGetOwnedOrgsByUserIDDesc(t *testing.T) { - assert.NoError(t, unittest.PrepareTestDatabase()) - - orgs, err := GetOwnedOrgsByUserIDDesc(5, "id") - assert.NoError(t, err) - if assert.Len(t, orgs, 2) { - assert.EqualValues(t, 7, orgs[0].ID) - assert.EqualValues(t, 6, orgs[1].ID) - } - - orgs, err = GetOwnedOrgsByUserIDDesc(4, "id") - assert.NoError(t, err) - assert.Len(t, orgs, 0) -} - func TestGetOrgUsersByUserID(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) @@ -266,7 +239,7 @@ func TestGetOrgUsersByUserID(t *testing.T) { func TestGetOrgUsersByOrgID(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) - orgUsers, err := GetOrgUsersByOrgID(&FindOrgMembersOpts{ + orgUsers, err := GetOrgUsersByOrgID(db.DefaultContext, &FindOrgMembersOpts{ ListOptions: db.ListOptions{}, OrgID: 3, PublicOnly: false, @@ -287,7 +260,7 @@ func TestGetOrgUsersByOrgID(t *testing.T) { }, *orgUsers[1]) } - orgUsers, err = GetOrgUsersByOrgID(&FindOrgMembersOpts{ + orgUsers, err = GetOrgUsersByOrgID(db.DefaultContext, &FindOrgMembersOpts{ ListOptions: db.ListOptions{}, OrgID: unittest.NonexistentID, PublicOnly: false, diff --git a/models/organization/org_user_test.go b/models/organization/org_user_test.go index 5fee253c47..1e85f4ed22 100644 --- a/models/organization/org_user_test.go +++ b/models/organization/org_user_test.go @@ -91,7 +91,7 @@ func TestUserListIsPublicMember(t *testing.T) { } func testUserListIsPublicMember(t *testing.T, orgID int64, expected map[int64]bool) { - org, err := GetOrgByID(orgID) + org, err := GetOrgByID(db.DefaultContext, orgID) assert.NoError(t, err) _, membersIsPublic, err := org.GetMembers() assert.NoError(t, err) @@ -118,7 +118,7 @@ func TestUserListIsUserOrgOwner(t *testing.T) { } func testUserListIsUserOrgOwner(t *testing.T, orgID int64, expected map[int64]bool) { - org, err := GetOrgByID(orgID) + org, err := GetOrgByID(db.DefaultContext, orgID) assert.NoError(t, err) members, _, err := org.GetMembers() assert.NoError(t, err) diff --git a/models/organization/team.go b/models/organization/team.go index 077fba6a60..b32ffa6ca7 100644 --- a/models/organization/team.go +++ b/models/organization/team.go @@ -272,7 +272,8 @@ func IsUsableTeamName(name string) error { } } -func getTeam(ctx context.Context, orgID int64, name string) (*Team, error) { +// GetTeam returns team by given team name and organization. +func GetTeam(ctx context.Context, orgID int64, name string) (*Team, error) { t := &Team{ OrgID: orgID, LowerName: strings.ToLower(name), @@ -286,16 +287,11 @@ func getTeam(ctx context.Context, orgID int64, name string) (*Team, error) { return t, nil } -// GetTeam returns team by given team name and organization. -func GetTeam(orgID int64, name string) (*Team, error) { - return getTeam(db.DefaultContext, orgID, name) -} - // GetTeamIDsByNames returns a slice of team ids corresponds to names. func GetTeamIDsByNames(orgID int64, names []string, ignoreNonExistent bool) ([]int64, error) { ids := make([]int64, 0, len(names)) for _, name := range names { - u, err := GetTeam(orgID, name) + u, err := GetTeam(db.DefaultContext, orgID, name) if err != nil { if ignoreNonExistent { continue @@ -310,11 +306,11 @@ func GetTeamIDsByNames(orgID int64, names []string, ignoreNonExistent bool) ([]i // GetOwnerTeam returns team by given team name and organization. func GetOwnerTeam(ctx context.Context, orgID int64) (*Team, error) { - return getTeam(ctx, orgID, OwnerTeamName) + return GetTeam(ctx, orgID, OwnerTeamName) } -// GetTeamByIDCtx returns team by given ID. -func GetTeamByIDCtx(ctx context.Context, teamID int64) (*Team, error) { +// GetTeamByID returns team by given ID. +func GetTeamByID(ctx context.Context, teamID int64) (*Team, error) { t := new(Team) has, err := db.GetEngine(ctx).ID(teamID).Get(t) if err != nil { @@ -325,11 +321,6 @@ func GetTeamByIDCtx(ctx context.Context, teamID int64) (*Team, error) { return t, nil } -// GetTeamByID returns team by given ID. -func GetTeamByID(teamID int64) (*Team, error) { - return GetTeamByIDCtx(db.DefaultContext, teamID) -} - // GetTeamNamesByID returns team's lower name from a list of team ids. func GetTeamNamesByID(teamIDs []int64) ([]string, error) { if len(teamIDs) == 0 { @@ -346,16 +337,12 @@ func GetTeamNamesByID(teamIDs []int64) ([]string, error) { return teamNames, err } -func getRepoTeams(e db.Engine, repo *repo_model.Repository) (teams []*Team, err error) { - return teams, e. +// GetRepoTeams gets the list of teams that has access to the repository +func GetRepoTeams(ctx context.Context, repo *repo_model.Repository) (teams []*Team, err error) { + return teams, db.GetEngine(ctx). Join("INNER", "team_repo", "team_repo.team_id = team.id"). Where("team.org_id = ?", repo.OwnerID). And("team_repo.repo_id=?", repo.ID). OrderBy("CASE WHEN name LIKE '" + OwnerTeamName + "' THEN '' ELSE name END"). Find(&teams) } - -// GetRepoTeams gets the list of teams that has access to the repository -func GetRepoTeams(repo *repo_model.Repository) ([]*Team, error) { - return getRepoTeams(db.GetEngine(db.DefaultContext), repo) -} diff --git a/models/organization/team_test.go b/models/organization/team_test.go index bbf9f789f6..860a7107ec 100644 --- a/models/organization/team_test.go +++ b/models/organization/team_test.go @@ -71,7 +71,7 @@ func TestGetTeam(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) testSuccess := func(orgID int64, name string) { - team, err := GetTeam(orgID, name) + team, err := GetTeam(db.DefaultContext, orgID, name) assert.NoError(t, err) assert.EqualValues(t, orgID, team.OrgID) assert.Equal(t, name, team.Name) @@ -79,9 +79,9 @@ func TestGetTeam(t *testing.T) { testSuccess(3, "Owners") testSuccess(3, "team1") - _, err := GetTeam(3, "nonexistent") + _, err := GetTeam(db.DefaultContext, 3, "nonexistent") assert.Error(t, err) - _, err = GetTeam(unittest.NonexistentID, "Owners") + _, err = GetTeam(db.DefaultContext, unittest.NonexistentID, "Owners") assert.Error(t, err) } @@ -89,7 +89,7 @@ func TestGetTeamByID(t *testing.T) { assert.NoError(t, unittest.PrepareTestDatabase()) testSuccess := func(teamID int64) { - team, err := GetTeamByID(teamID) + team, err := GetTeamByID(db.DefaultContext, teamID) assert.NoError(t, err) assert.EqualValues(t, teamID, team.ID) } @@ -98,7 +98,7 @@ func TestGetTeamByID(t *testing.T) { testSuccess(3) testSuccess(4) - _, err := GetTeamByID(unittest.NonexistentID) + _, err := GetTeamByID(db.DefaultContext, unittest.NonexistentID) assert.Error(t, err) } |