summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2015-10-30 10:57:25 -0400
committerJoram Wilander <jwawilander@gmail.com>2015-10-30 10:57:25 -0400
commit256be4c14dfd99fc923d497cc6d7dfe3f4e8e3c5 (patch)
treef85d6a4707eaab904694aa4fc42aca917f03fdc4 /api
parentc2cd58a33f52c6567e39d8ba563425dc06916d41 (diff)
parentbedf85a122359a70cbb21be1219a5d566466273e (diff)
downloadchat-256be4c14dfd99fc923d497cc6d7dfe3f4e8e3c5.tar.gz
chat-256be4c14dfd99fc923d497cc6d7dfe3f4e8e3c5.tar.bz2
chat-256be4c14dfd99fc923d497cc6d7dfe3f4e8e3c5.zip
Merge pull request #1211 from mattermost/PLT-340
PLT-340 allow team directory and open invites
Diffstat (limited to 'api')
-rw-r--r--api/team.go45
-rw-r--r--api/team_test.go32
-rw-r--r--api/user_test.go12
3 files changed, 33 insertions, 56 deletions
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) {