mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 08:02:36 +09:00 
			
		
		
		
	Fix bug in removeOrgRepo
This commit is contained in:
		@@ -30,12 +30,14 @@ import (
 | 
			
		||||
 | 
			
		||||
// Engine represents a xorm engine or session.
 | 
			
		||||
type Engine interface {
 | 
			
		||||
	Decr(column string, arg ...interface{}) *xorm.Session
 | 
			
		||||
	Delete(interface{}) (int64, error)
 | 
			
		||||
	Exec(string, ...interface{}) (sql.Result, error)
 | 
			
		||||
	Find(interface{}, ...interface{}) error
 | 
			
		||||
	Get(interface{}) (bool, error)
 | 
			
		||||
	Id(interface{}) *xorm.Session
 | 
			
		||||
	In(string, ...interface{}) *xorm.Session
 | 
			
		||||
	Incr(column string, arg ...interface{}) *xorm.Session
 | 
			
		||||
	Insert(...interface{}) (int64, error)
 | 
			
		||||
	InsertOne(interface{}) (int64, error)
 | 
			
		||||
	Iterate(interface{}, xorm.IterFunc) error
 | 
			
		||||
 
 | 
			
		||||
@@ -526,10 +526,28 @@ func RemoveOrgUser(orgID, userID int64) error {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func removeOrgRepo(e Engine, orgID, repoID int64) error {
 | 
			
		||||
	_, err := e.Delete(&TeamRepo{
 | 
			
		||||
	teamRepos := make([]*TeamRepo, 0, 10)
 | 
			
		||||
	if err := e.Find(&teamRepos, &TeamRepo{OrgID: orgID, RepoID: repoID}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if len(teamRepos) == 0 {
 | 
			
		||||
		return nil
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if _, err := e.Delete(&TeamRepo{
 | 
			
		||||
		OrgID:  orgID,
 | 
			
		||||
		RepoID: repoID,
 | 
			
		||||
	})
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	teamIDs := make([]int64, len(teamRepos))
 | 
			
		||||
	for i, teamRepo := range teamRepos {
 | 
			
		||||
		teamIDs[i] = teamRepo.ID
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	_, err := x.Decr("num_repos").In("id", teamIDs).Update(new(Team))
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user