From bb25056d9afca501f147450466aaeecca9fef66f Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Tue, 27 Oct 2015 22:18:52 -0700 Subject: PLT-340 --- api/team.go | 45 ++++++++++++++++++++++++++------------------- api/team_test.go | 32 +++++++------------------------- api/user_test.go | 12 ------------ 3 files changed, 33 insertions(+), 56 deletions(-) (limited to 'api') diff --git a/api/team.go b/api/team.go index d39d8ed60..7d746d922 100644 --- a/api/team.go +++ b/api/team.go @@ -30,7 +30,7 @@ func InitTeam(r *mux.Router) { sr.Handle("/find_teams", ApiAppHandler(findTeams)).Methods("POST") sr.Handle("/email_teams", ApiAppHandler(emailTeams)).Methods("POST") sr.Handle("/invite_members", ApiUserRequired(inviteMembers)).Methods("POST") - sr.Handle("/update_name", ApiUserRequired(updateTeamDisplayName)).Methods("POST") + sr.Handle("/update", ApiUserRequired(updateTeam)).Methods("POST") sr.Handle("/me", ApiUserRequired(getMyTeam)).Methods("GET") // These should be moved to the global admain console sr.Handle("/import_team", ApiUserRequired(importTeam)).Methods("POST") @@ -541,40 +541,47 @@ func InviteMembers(c *Context, team *model.Team, user *model.User, invites []str } } -func updateTeamDisplayName(c *Context, w http.ResponseWriter, r *http.Request) { +func updateTeam(c *Context, w http.ResponseWriter, r *http.Request) { - props := model.MapFromJson(r.Body) + team := model.TeamFromJson(r.Body) - new_name := props["new_name"] - if len(new_name) == 0 { - c.SetInvalidParam("updateTeamDisplayName", "new_name") + if team == nil { + c.SetInvalidParam("updateTeam", "team") return } - teamId := props["team_id"] - if len(teamId) > 0 && len(teamId) != 26 { - c.SetInvalidParam("updateTeamDisplayName", "team_id") - return - } else if len(teamId) == 0 { - teamId = c.Session.TeamId - } + team.Id = c.Session.TeamId - if !c.HasPermissionsToTeam(teamId, "updateTeamDisplayName") { + if !c.IsTeamAdmin() { + c.Err = model.NewAppError("updateTeam", "You do not have the appropriate permissions", "userId="+c.Session.UserId) + c.Err.StatusCode = http.StatusForbidden return } - if !c.IsTeamAdmin() { - c.Err = model.NewAppError("updateTeamDisplayName", "You do not have the appropriate permissions", "userId="+c.Session.UserId) - c.Err.StatusCode = http.StatusForbidden + var oldTeam *model.Team + if result := <-Srv.Store.Team().Get(team.Id); result.Err != nil { + c.Err = result.Err return + } else { + oldTeam = result.Data.(*model.Team) } - if result := <-Srv.Store.Team().UpdateDisplayName(new_name, c.Session.TeamId); result.Err != nil { + oldTeam.DisplayName = team.DisplayName + oldTeam.InviteId = team.InviteId + oldTeam.AllowOpenInvite = team.AllowOpenInvite + oldTeam.AllowTeamListing = team.AllowTeamListing + oldTeam.CompanyName = team.CompanyName + oldTeam.AllowedDomains = team.AllowedDomains + //oldTeam.Type = team.Type + + if result := <-Srv.Store.Team().Update(oldTeam); result.Err != nil { c.Err = result.Err return } - w.Write([]byte(model.MapToJson(props))) + oldTeam.Sanitize() + + w.Write([]byte(oldTeam.ToJson())) } func getMyTeam(c *Context, w http.ResponseWriter, r *http.Request) { diff --git a/api/team_test.go b/api/team_test.go index 507f4252a..7a3b092ce 100644 --- a/api/team_test.go +++ b/api/team_test.go @@ -281,41 +281,23 @@ func TestUpdateTeamDisplayName(t *testing.T) { Client.LoginByEmail(team.Name, user2.Email, "pwd") - data := make(map[string]string) - data["new_name"] = "NewName" - if _, err := Client.UpdateTeamDisplayName(data); err == nil { + vteam := &model.Team{DisplayName: team.DisplayName, Name: team.Name, Email: team.Email, Type: team.Type} + vteam.DisplayName = "NewName" + if _, err := Client.UpdateTeam(vteam); err == nil { t.Fatal("Should have errored, not admin") } Client.LoginByEmail(team.Name, user.Email, "pwd") - data["new_name"] = "" - if _, err := Client.UpdateTeamDisplayName(data); err == nil { + vteam.DisplayName = "" + if _, err := Client.UpdateTeam(vteam); err == nil { t.Fatal("Should have errored, empty name") } - data["new_name"] = "NewName" - if _, err := Client.UpdateTeamDisplayName(data); err != nil { + vteam.DisplayName = "NewName" + if _, err := Client.UpdateTeam(vteam); err != nil { t.Fatal(err) } - // No GET team web service, so hard to confirm here that team name updated - - data["team_id"] = "junk" - if _, err := Client.UpdateTeamDisplayName(data); err == nil { - t.Fatal("Should have errored, junk team id") - } - - data["team_id"] = "12345678901234567890123456" - if _, err := Client.UpdateTeamDisplayName(data); err == nil { - t.Fatal("Should have errored, bad team id") - } - - data["team_id"] = team.Id - data["new_name"] = "NewNameAgain" - if _, err := Client.UpdateTeamDisplayName(data); err != nil { - t.Fatal(err) - } - // No GET team web service, so hard to confirm here that team name updated } func TestFuzzyTeamCreate(t *testing.T) { diff --git a/api/user_test.go b/api/user_test.go index b54e030c5..0ad3541bc 100644 --- a/api/user_test.go +++ b/api/user_test.go @@ -661,12 +661,6 @@ func TestUserUpdateRoles(t *testing.T) { t.Fatal("Should have errored, not admin") } - name := make(map[string]string) - name["new_name"] = "NewName" - if _, err := Client.UpdateTeamDisplayName(name); err == nil { - t.Fatal("should have errored - user not admin yet") - } - team2 := &model.Team{DisplayName: "Name", Name: "z-z-" + model.NewId() + "a", Email: "test@nowhere.com", Type: model.TEAM_OPEN} team2 = Client.Must(Client.CreateTeam(team2)).Data.(*model.Team) @@ -707,12 +701,6 @@ func TestUserUpdateRoles(t *testing.T) { t.Fatal("Roles did not update properly") } } - - Client.LoginByEmail(team.Name, user2.Email, "pwd") - - if _, err := Client.UpdateTeamDisplayName(name); err != nil { - t.Fatal(err) - } } func TestUserUpdateActive(t *testing.T) { -- cgit v1.2.3-1-g7c22