diff --git a/api4/team.go b/api4/team.go index 76ba79fbdd..bdbed5cdca 100644 --- a/api4/team.go +++ b/api4/team.go @@ -1138,6 +1138,7 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { auditRec.AddMeta("from", importFrom) var log *bytes.Buffer + data := map[string]string{} switch importFrom { case "slack": var err *model.AppError @@ -1145,12 +1146,14 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { c.Err = err c.Err.StatusCode = http.StatusBadRequest } + data["results"] = base64.StdEncoding.EncodeToString(log.Bytes()) + default: + c.Err = model.NewAppError("importTeam", "api.team.import_team.unknown_import_from.app_error", nil, "", http.StatusBadRequest) } - data := map[string]string{} - data["results"] = base64.StdEncoding.EncodeToString(log.Bytes()) if c.Err != nil { w.WriteHeader(c.Err.StatusCode) + return } auditRec.Success() w.Write([]byte(model.MapToJson(data))) diff --git a/api4/team_test.go b/api4/team_test.go index 2312568447..457ba68d7a 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -2614,6 +2614,17 @@ func TestImportTeam(t *testing.T) { th := Setup(t).InitBasic() defer th.TearDown() + th.TestForAllClients(t, func(T *testing.T, c *model.Client4) { + data, err := testutils.ReadTestFile("Fake_Team_Import.zip") + + require.False(t, err != nil && len(data) == 0, "Error while reading the test file.") + _, resp := th.SystemAdminClient.ImportTeam(data, binary.Size(data), "XYZ", "Fake_Team_Import.zip", th.BasicTeam.Id) + CheckBadRequestStatus(t, resp) + + _, resp = th.SystemAdminClient.ImportTeam(data, binary.Size(data), "", "Fake_Team_Import.zip", th.BasicTeam.Id) + CheckBadRequestStatus(t, resp) + }, "Import from unknown and source") + t.Run("ImportTeam", func(t *testing.T) { var data []byte var err error diff --git a/i18n/en.json b/i18n/en.json index e44b0e6c2a..32982228ea 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -2066,6 +2066,10 @@ "id": "api.team.import_team.unavailable.app_error", "translation": "Malformed request: filesize field is not present." }, + { + "id": "api.team.import_team.unknown_import_from.app_error", + "translation": "Unknown import source." + }, { "id": "api.team.invalidate_all_email_invites.app_error", "translation": "Error invalidating email invites."