diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2018-11-12 01:43:56 +0800 |
---|---|---|
committer | techknowlogick <hello@techknowlogick.com> | 2018-11-11 12:43:56 -0500 |
commit | 8670decafbf00291c3a2d203925b5d73a49e78a6 (patch) | |
tree | 4b0ad790433c1a4f603c0997d12421234d200a0a /routers/api/v1 | |
parent | 297e619074d8578866d207b44f00771d0bfc0bc0 (diff) | |
download | gitea-8670decafbf00291c3a2d203925b5d73a49e78a6.tar.gz gitea-8670decafbf00291c3a2d203925b5d73a49e78a6.zip |
Fix create team, update team missing units (#5188) (#5313)
Diffstat (limited to 'routers/api/v1')
-rw-r--r-- | routers/api/v1/convert/convert.go | 1 | ||||
-rw-r--r-- | routers/api/v1/org/team.go | 27 |
2 files changed, 28 insertions, 0 deletions
diff --git a/routers/api/v1/convert/convert.go b/routers/api/v1/convert/convert.go index 19b966971a..5850218a2b 100644 --- a/routers/api/v1/convert/convert.go +++ b/routers/api/v1/convert/convert.go @@ -196,5 +196,6 @@ func ToTeam(team *models.Team) *api.Team { Name: team.Name, Description: team.Description, Permission: team.Authorize.String(), + Units: team.GetUnitNames(), } } diff --git a/routers/api/v1/org/team.go b/routers/api/v1/org/team.go index b8dd026bf3..e2bbbe45e1 100644 --- a/routers/api/v1/org/team.go +++ b/routers/api/v1/org/team.go @@ -89,6 +89,20 @@ func CreateTeam(ctx *context.APIContext, form api.CreateTeamOption) { Description: form.Description, Authorize: models.ParseAccessMode(form.Permission), } + + unitTypes := models.FindUnitTypes(form.Units...) + + if team.Authorize < models.AccessModeOwner { + var units = make([]*models.TeamUnit, 0, len(form.Units)) + for _, tp := range unitTypes { + units = append(units, &models.TeamUnit{ + OrgID: ctx.Org.Organization.ID, + Type: tp, + }) + } + team.Units = units + } + if err := models.NewTeam(team); err != nil { if models.IsErrTeamAlreadyExist(err) { ctx.Error(422, "", err) @@ -127,6 +141,19 @@ func EditTeam(ctx *context.APIContext, form api.EditTeamOption) { team.Name = form.Name team.Description = form.Description team.Authorize = models.ParseAccessMode(form.Permission) + unitTypes := models.FindUnitTypes(form.Units...) + + if team.Authorize < models.AccessModeOwner { + var units = make([]*models.TeamUnit, 0, len(form.Units)) + for _, tp := range unitTypes { + units = append(units, &models.TeamUnit{ + OrgID: ctx.Org.Organization.ID, + Type: tp, + }) + } + team.Units = units + } + if err := models.UpdateTeam(team, true); err != nil { ctx.Error(500, "EditTeam", err) return |