Skip to content

Commit 70a80e3

Browse files
lunnytechknowlogick
authored andcommitted
fix sqlite and mssql lock (#5214)
1 parent 7694c99 commit 70a80e3

File tree

1 file changed

+22
-12
lines changed

1 file changed

+22
-12
lines changed

models/org.go

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -460,21 +460,21 @@ func removeOrgUser(sess *xorm.Session, orgID, userID int64) error {
460460
return nil
461461
}
462462

463-
org, err := GetUserByID(orgID)
463+
org, err := getUserByID(sess, orgID)
464464
if err != nil {
465465
return fmt.Errorf("GetUserByID [%d]: %v", orgID, err)
466466
}
467467

468468
// Check if the user to delete is the last member in owner team.
469-
if isOwner, err := IsOrganizationOwner(orgID, userID); err != nil {
469+
if isOwner, err := isOrganizationOwner(sess, orgID, userID); err != nil {
470470
return err
471471
} else if isOwner {
472-
t, err := org.GetOwnerTeam()
472+
t, err := org.getOwnerTeam(sess)
473473
if err != nil {
474474
return err
475475
}
476476
if t.NumMembers == 1 {
477-
if err := t.GetMembers(); err != nil {
477+
if err := t.getMembers(sess); err != nil {
478478
return err
479479
}
480480
if t.Members[0].ID == userID {
@@ -490,7 +490,7 @@ func removeOrgUser(sess *xorm.Session, orgID, userID int64) error {
490490
}
491491

492492
// Delete all repository accesses and unwatch them.
493-
env, err := org.AccessibleReposEnv(userID)
493+
env, err := org.accessibleReposEnv(sess, userID)
494494
if err != nil {
495495
return fmt.Errorf("AccessibleReposEnv: %v", err)
496496
}
@@ -618,16 +618,26 @@ type accessibleReposEnv struct {
618618
org *User
619619
userID int64
620620
teamIDs []int64
621+
e Engine
621622
}
622623

623624
// AccessibleReposEnv an AccessibleReposEnvironment for the repositories in `org`
624625
// that are accessible to the specified user.
625626
func (org *User) AccessibleReposEnv(userID int64) (AccessibleReposEnvironment, error) {
626-
teamIDs, err := org.GetUserTeamIDs(userID)
627+
return org.accessibleReposEnv(x, userID)
628+
}
629+
630+
func (org *User) accessibleReposEnv(e Engine, userID int64) (AccessibleReposEnvironment, error) {
631+
teamIDs, err := org.getUserTeamIDs(e, userID)
627632
if err != nil {
628633
return nil, err
629634
}
630-
return &accessibleReposEnv{org: org, userID: userID, teamIDs: teamIDs}, nil
635+
return &accessibleReposEnv{
636+
org: org,
637+
userID: userID,
638+
teamIDs: teamIDs,
639+
e: e,
640+
}, nil
631641
}
632642

633643
func (env *accessibleReposEnv) cond() builder.Cond {
@@ -642,7 +652,7 @@ func (env *accessibleReposEnv) cond() builder.Cond {
642652
}
643653

644654
func (env *accessibleReposEnv) CountRepos() (int64, error) {
645-
repoCount, err := x.
655+
repoCount, err := env.e.
646656
Join("INNER", "team_repo", "`team_repo`.repo_id=`repository`.id").
647657
Where(env.cond()).
648658
Distinct("`repository`.id").
@@ -659,7 +669,7 @@ func (env *accessibleReposEnv) RepoIDs(page, pageSize int) ([]int64, error) {
659669
}
660670

661671
repoIDs := make([]int64, 0, pageSize)
662-
return repoIDs, x.
672+
return repoIDs, env.e.
663673
Table("repository").
664674
Join("INNER", "team_repo", "`team_repo`.repo_id=`repository`.id").
665675
Where(env.cond()).
@@ -681,14 +691,14 @@ func (env *accessibleReposEnv) Repos(page, pageSize int) ([]*Repository, error)
681691
return repos, nil
682692
}
683693

684-
return repos, x.
694+
return repos, env.e.
685695
In("`repository`.id", repoIDs).
686696
Find(&repos)
687697
}
688698

689699
func (env *accessibleReposEnv) MirrorRepoIDs() ([]int64, error) {
690700
repoIDs := make([]int64, 0, 10)
691-
return repoIDs, x.
701+
return repoIDs, env.e.
692702
Table("repository").
693703
Join("INNER", "team_repo", "`team_repo`.repo_id=`repository`.id AND `repository`.is_mirror=?", true).
694704
Where(env.cond()).
@@ -709,7 +719,7 @@ func (env *accessibleReposEnv) MirrorRepos() ([]*Repository, error) {
709719
return repos, nil
710720
}
711721

712-
return repos, x.
722+
return repos, env.e.
713723
In("`repository`.id", repoIDs).
714724
Find(&repos)
715725
}

0 commit comments

Comments
 (0)