aboutsummaryrefslogtreecommitdiffstats
path: root/models/organization
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2022-05-20 22:08:52 +0800
committerGitHub <noreply@github.com>2022-05-20 22:08:52 +0800
commitfd7d83ace60258acf7139c4c787aa8af75b7ba8c (patch)
tree50038348ec10485f72344f3ac80324e04abc1283 /models/organization
parentd81e31ad7826a81fc7139f329f250594610a274b (diff)
downloadgitea-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.go65
-rw-r--r--models/organization/org_test.go39
-rw-r--r--models/organization/org_user_test.go4
-rw-r--r--models/organization/team.go31
-rw-r--r--models/organization/team_test.go10
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)
}