From bf4cefc3496686850757b2d44219ea2425871dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 29 May 2018 10:32:07 +0200 Subject: Allow to update the teams scheme to default scheme (#8855) --- api4/team.go | 22 ++++++++++++---------- api4/team_test.go | 4 ++++ 2 files changed, 16 insertions(+), 10 deletions(-) (limited to 'api4') diff --git a/api4/team.go b/api4/team.go index 508602d0e..74b385122 100644 --- a/api4/team.go +++ b/api4/team.go @@ -842,7 +842,7 @@ func updateTeamScheme(c *Context, w http.ResponseWriter, r *http.Request) { } schemeID := model.SchemeIDFromJson(r.Body) - if schemeID == nil || len(*schemeID) != 26 { + if schemeID == nil || (len(*schemeID) != 26 && *schemeID != "") { c.SetInvalidParam("scheme_id") return } @@ -857,15 +857,17 @@ func updateTeamScheme(c *Context, w http.ResponseWriter, r *http.Request) { return } - scheme, err := c.App.GetScheme(*schemeID) - if err != nil { - c.Err = err - return - } + if *schemeID != "" { + scheme, err := c.App.GetScheme(*schemeID) + if err != nil { + c.Err = err + return + } - if scheme.Scope != model.SCHEME_SCOPE_TEAM { - c.Err = model.NewAppError("Api4.UpdateTeamScheme", "api.team.update_team_scheme.scheme_scope.error", nil, "", http.StatusBadRequest) - return + if scheme.Scope != model.SCHEME_SCOPE_TEAM { + c.Err = model.NewAppError("Api4.UpdateTeamScheme", "api.team.update_team_scheme.scheme_scope.error", nil, "", http.StatusBadRequest) + return + } } team, err := c.App.GetTeam(c.Params.TeamId) @@ -874,7 +876,7 @@ func updateTeamScheme(c *Context, w http.ResponseWriter, r *http.Request) { return } - team.SchemeId = &scheme.Id + team.SchemeId = schemeID _, err = c.App.UpdateTeamScheme(team) if err != nil { diff --git a/api4/team_test.go b/api4/team_test.go index b47a8b650..079ba37ec 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -2095,6 +2095,10 @@ func TestUpdateTeamScheme(t *testing.T) { _, resp := th.SystemAdminClient.UpdateTeamScheme(team.Id, teamScheme.Id) CheckNoError(t, resp) + // Test the return to default scheme + _, resp = th.SystemAdminClient.UpdateTeamScheme(team.Id, "") + CheckNoError(t, resp) + // Test various invalid team and scheme id combinations. _, resp = th.SystemAdminClient.UpdateTeamScheme(team.Id, "x") CheckBadRequestStatus(t, resp) -- cgit v1.2.3-1-g7c22