mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-05-04 13:50:39 +00:00
Remove NewSession method from db.Engine interface (#17577)
* Remove NewSession method from db.Engine interface * Fix bug * Some improvements * Fix bug * Fix test * Use XXXBean instead of XXXExample
This commit is contained in:
parent
0add627182
commit
d710af6669
44 changed files with 600 additions and 620 deletions
|
@ -18,7 +18,6 @@ import (
|
|||
"code.gitea.io/gitea/modules/structs"
|
||||
|
||||
"xorm.io/builder"
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
|
||||
// Organization represents an organization
|
||||
|
@ -441,13 +440,13 @@ func getUsersWhoCanCreateOrgRepo(e db.Engine, orgID int64) ([]*User, error) {
|
|||
And("team_user.org_id = ?", orgID).Asc("`user`.name").Find(&users)
|
||||
}
|
||||
|
||||
func getOrgsByUserID(sess *xorm.Session, userID int64, showAll bool) ([]*Organization, error) {
|
||||
func getOrgsByUserID(e db.Engine, userID int64, showAll bool) ([]*Organization, error) {
|
||||
orgs := make([]*Organization, 0, 10)
|
||||
sess := e.Where("`org_user`.uid=?", userID)
|
||||
if !showAll {
|
||||
sess.And("`org_user`.is_public=?", true)
|
||||
sess = sess.And("`org_user`.is_public=?", true)
|
||||
}
|
||||
return orgs, sess.
|
||||
And("`org_user`.uid=?", userID).
|
||||
Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").
|
||||
Asc("`user`.name").
|
||||
Find(&orgs)
|
||||
|
@ -456,9 +455,7 @@ func getOrgsByUserID(sess *xorm.Session, userID int64, showAll bool) ([]*Organiz
|
|||
// GetOrgsByUserID returns a list of organizations that the given user ID
|
||||
// has joined.
|
||||
func GetOrgsByUserID(userID int64, showAll bool) ([]*Organization, error) {
|
||||
sess := db.NewSession(db.DefaultContext)
|
||||
defer sess.Close()
|
||||
return getOrgsByUserID(sess, userID, showAll)
|
||||
return getOrgsByUserID(db.GetEngine(db.DefaultContext), userID, showAll)
|
||||
}
|
||||
|
||||
// MinimalOrg represents a simple orgnization with only needed columns
|
||||
|
@ -466,9 +463,6 @@ type MinimalOrg = Organization
|
|||
|
||||
// GetUserOrgsList returns one user's all orgs list
|
||||
func GetUserOrgsList(user *User) ([]*MinimalOrg, error) {
|
||||
sess := db.NewSession(db.DefaultContext)
|
||||
defer sess.Close()
|
||||
|
||||
schema, err := db.TableInfo(new(User))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -491,7 +485,8 @@ func GetUserOrgsList(user *User) ([]*MinimalOrg, error) {
|
|||
groupByStr := groupByCols.String()
|
||||
groupByStr = groupByStr[0 : len(groupByStr)-1]
|
||||
|
||||
sess.Select(groupByStr+", count(distinct repo_id) as org_count").
|
||||
sess := db.GetEngine(db.DefaultContext)
|
||||
sess = sess.Select(groupByStr+", count(distinct repo_id) as org_count").
|
||||
Table("user").
|
||||
Join("INNER", "team", "`team`.org_id = `user`.id").
|
||||
Join("INNER", "team_user", "`team`.id = `team_user`.team_id").
|
||||
|
@ -524,7 +519,7 @@ func GetUserOrgsList(user *User) ([]*MinimalOrg, error) {
|
|||
return orgs, nil
|
||||
}
|
||||
|
||||
func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) {
|
||||
func getOwnedOrgsByUserID(sess db.Engine, userID int64) ([]*User, error) {
|
||||
orgs := make([]*User, 0, 10)
|
||||
return orgs, sess.
|
||||
Join("INNER", "`team_user`", "`team_user`.org_id=`user`.id").
|
||||
|
@ -572,9 +567,7 @@ func HasOrgsVisible(orgs []*Organization, user *User) bool {
|
|||
|
||||
// GetOwnedOrgsByUserID returns a list of organizations are owned by given user ID.
|
||||
func GetOwnedOrgsByUserID(userID int64) ([]*User, error) {
|
||||
sess := db.NewSession(db.DefaultContext)
|
||||
defer sess.Close()
|
||||
return getOwnedOrgsByUserID(sess, userID)
|
||||
return getOwnedOrgsByUserID(db.GetEngine(db.DefaultContext), userID)
|
||||
}
|
||||
|
||||
// GetOwnedOrgsByUserIDDesc returns a list of organizations are owned by
|
||||
|
@ -664,11 +657,11 @@ func AddOrgUser(orgID, uid int64) error {
|
|||
return err
|
||||
}
|
||||
|
||||
sess := db.NewSession(db.DefaultContext)
|
||||
defer sess.Close()
|
||||
if err := sess.Begin(); err != nil {
|
||||
ctx, committer, err := db.TxContext()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer committer.Close()
|
||||
|
||||
ou := &OrgUser{
|
||||
UID: uid,
|
||||
|
@ -676,19 +669,13 @@ func AddOrgUser(orgID, uid int64) error {
|
|||
IsPublic: setting.Service.DefaultOrgMemberVisible,
|
||||
}
|
||||
|
||||
if _, err := sess.Insert(ou); err != nil {
|
||||
if err := sess.Rollback(); err != nil {
|
||||
log.Error("AddOrgUser: sess.Rollback: %v", err)
|
||||
}
|
||||
if err := db.Insert(ctx, ou); err != nil {
|
||||
return err
|
||||
} else if _, err = sess.Exec("UPDATE `user` SET num_members = num_members + 1 WHERE id = ?", orgID); err != nil {
|
||||
if err := sess.Rollback(); err != nil {
|
||||
log.Error("AddOrgUser: sess.Rollback: %v", err)
|
||||
}
|
||||
} else if _, err = db.Exec(ctx, "UPDATE `user` SET num_members = num_members + 1 WHERE id = ?", orgID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return sess.Commit()
|
||||
return committer.Commit()
|
||||
}
|
||||
|
||||
// GetOrgByIDCtx returns the user object by given ID if exists.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue