summaryrefslogtreecommitdiffstats
path: root/routers/api/v1
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2018-11-12 01:43:56 +0800
committertechknowlogick <hello@techknowlogick.com>2018-11-11 12:43:56 -0500
commit8670decafbf00291c3a2d203925b5d73a49e78a6 (patch)
tree4b0ad790433c1a4f603c0997d12421234d200a0a /routers/api/v1
parent297e619074d8578866d207b44f00771d0bfc0bc0 (diff)
downloadgitea-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.go1
-rw-r--r--routers/api/v1/org/team.go27
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