summaryrefslogtreecommitdiffstats
path: root/api4
diff options
context:
space:
mode:
authorJesús Espino <jespinog@gmail.com>2018-05-29 10:32:07 +0200
committerGeorge Goldberg <george@gberg.me>2018-05-29 09:32:07 +0100
commitbf4cefc3496686850757b2d44219ea2425871dda (patch)
tree61d8f5e12ec066c92e47a50c6ac6ea89e8ca39c4 /api4
parentc180cdbd1cba584c6e74cae7042de2290b51feb6 (diff)
downloadchat-bf4cefc3496686850757b2d44219ea2425871dda.tar.gz
chat-bf4cefc3496686850757b2d44219ea2425871dda.tar.bz2
chat-bf4cefc3496686850757b2d44219ea2425871dda.zip
Allow to update the teams scheme to default scheme (#8855)
Diffstat (limited to 'api4')
-rw-r--r--api4/team.go22
-rw-r--r--api4/team_test.go4
2 files changed, 16 insertions, 10 deletions
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)