mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-11-28 04:36:11 +01:00
Fix bug in removeOrgRepo
This commit is contained in:
parent
8a421b1fd7
commit
f82ea42679
|
@ -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
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue