diff --git a/api4/team.go b/api4/team.go index f60d916615..fb699d79f8 100644 --- a/api4/team.go +++ b/api4/team.go @@ -569,6 +569,10 @@ func addTeamMember(c *Context, w http.ResponseWriter, r *http.Request) { var err *model.AppError member := model.TeamMemberFromJson(r.Body) + if member == nil { + c.Err = model.NewAppError("addTeamMember", "api.team.add_team_member.invalid_body.app_error", nil, "Error in model.TeamMemberFromJson()", http.StatusBadRequest) + return + } if member.TeamId != c.Params.TeamId { c.SetInvalidParam("team_id") return diff --git a/api4/team_test.go b/api4/team_test.go index 1212141efe..5a44e4639d 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -1847,6 +1847,11 @@ func TestAddTeamMember(t *testing.T) { _, resp = Client.AddTeamMember(team.Id, otherUser.Id) CheckNoError(t, resp) + // Should return error with invalid JSON in body. + _, err = Client.DoApiPost("/teams/"+team.Id+"/members", "invalid") + require.NotNil(t, err) + require.Equal(t, "api.team.add_team_member.invalid_body.app_error", err.Id) + // by token Client.Login(otherUser.Email, otherUser.Password) diff --git a/i18n/en.json b/i18n/en.json index d1d1ee66f1..186e2cef86 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -2182,6 +2182,10 @@ "id": "api.team.add_members.user_denied", "translation": "This team is managed by groups. This user is not part of a group that is synced to this team." }, + { + "id": "api.team.add_team_member.invalid_body.app_error", + "translation": "Unable to parse the request body." + }, { "id": "api.team.add_user_to_team.added", "translation": "%v added to the team by %v."