mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-09-08 00:03:28 +00:00
Merge pull request #839 from ethantkoenig/fix/remove_org_repo
Fix bug in removeOrgRepo
This commit is contained in:
commit
7c3dc51655
2 changed files with 22 additions and 2 deletions
|
@ -30,12 +30,14 @@ import (
|
||||||
|
|
||||||
// Engine represents a xorm engine or session.
|
// Engine represents a xorm engine or session.
|
||||||
type Engine interface {
|
type Engine interface {
|
||||||
|
Decr(column string, arg ...interface{}) *xorm.Session
|
||||||
Delete(interface{}) (int64, error)
|
Delete(interface{}) (int64, error)
|
||||||
Exec(string, ...interface{}) (sql.Result, error)
|
Exec(string, ...interface{}) (sql.Result, error)
|
||||||
Find(interface{}, ...interface{}) error
|
Find(interface{}, ...interface{}) error
|
||||||
Get(interface{}) (bool, error)
|
Get(interface{}) (bool, error)
|
||||||
Id(interface{}) *xorm.Session
|
Id(interface{}) *xorm.Session
|
||||||
In(string, ...interface{}) *xorm.Session
|
In(string, ...interface{}) *xorm.Session
|
||||||
|
Incr(column string, arg ...interface{}) *xorm.Session
|
||||||
Insert(...interface{}) (int64, error)
|
Insert(...interface{}) (int64, error)
|
||||||
InsertOne(interface{}) (int64, error)
|
InsertOne(interface{}) (int64, error)
|
||||||
Iterate(interface{}, xorm.IterFunc) error
|
Iterate(interface{}, xorm.IterFunc) error
|
||||||
|
|
|
@ -526,10 +526,28 @@ func RemoveOrgUser(orgID, userID int64) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func removeOrgRepo(e Engine, orgID, repoID 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,
|
OrgID: orgID,
|
||||||
RepoID: repoID,
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue