diff options
author | JoramWilander <jwawilander@gmail.com> | 2017-08-08 16:20:07 -0400 |
---|---|---|
committer | JoramWilander <jwawilander@gmail.com> | 2017-08-08 16:20:07 -0400 |
commit | 1885d2ec2ab6870b735f08752f5354e9f624d87f (patch) | |
tree | 5ec059b473ca28ca0c6343d7c82ff4fbff43a616 /api4 | |
parent | 70fe9e9e971943b108492b1814a23bd42eae8ae2 (diff) | |
download | chat-1885d2ec2ab6870b735f08752f5354e9f624d87f.tar.gz chat-1885d2ec2ab6870b735f08752f5354e9f624d87f.tar.bz2 chat-1885d2ec2ab6870b735f08752f5354e9f624d87f.zip |
Minor updates to team
Diffstat (limited to 'api4')
-rw-r--r-- | api4/team.go | 4 | ||||
-rw-r--r-- | api4/team_test.go | 20 |
2 files changed, 20 insertions, 4 deletions
diff --git a/api4/team.go b/api4/team.go index 98a672d93..b71b285e6 100644 --- a/api4/team.go +++ b/api4/team.go @@ -85,7 +85,7 @@ func getTeam(c *Context, w http.ResponseWriter, r *http.Request) { c.Err = err return } else { - if team.Type != model.TEAM_OPEN && !app.SessionHasPermissionToTeam(c.Session, team.Id, model.PERMISSION_VIEW_TEAM) { + if (!team.AllowOpenInvite || team.Type != model.TEAM_OPEN) && !app.SessionHasPermissionToTeam(c.Session, team.Id, model.PERMISSION_VIEW_TEAM) { c.SetPermissionError(model.PERMISSION_VIEW_TEAM) return } @@ -105,7 +105,7 @@ func getTeamByName(c *Context, w http.ResponseWriter, r *http.Request) { c.Err = err return } else { - if team.Type != model.TEAM_OPEN && !app.SessionHasPermissionToTeam(c.Session, team.Id, model.PERMISSION_VIEW_TEAM) { + if (!team.AllowOpenInvite || team.Type != model.TEAM_OPEN) && !app.SessionHasPermissionToTeam(c.Session, team.Id, model.PERMISSION_VIEW_TEAM) { c.SetPermissionError(model.PERMISSION_VIEW_TEAM) return } diff --git a/api4/team_test.go b/api4/team_test.go index 421428afa..ba7b23ef3 100644 --- a/api4/team_test.go +++ b/api4/team_test.go @@ -106,13 +106,21 @@ func TestGetTeam(t *testing.T) { th.LoginTeamAdmin() - team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_INVITE} + team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: false} rteam2, _ := Client.CreateTeam(team2) + team3 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_INVITE, AllowOpenInvite: true} + rteam3, _ := Client.CreateTeam(team3) + th.LoginBasic() + // AllowInviteOpen is false and team is open, and user is not on team _, resp = Client.GetTeam(rteam2.Id, "") CheckForbiddenStatus(t, resp) + // AllowInviteOpen is true and team is invite, and user is not on team + _, resp = Client.GetTeam(rteam3.Id, "") + CheckForbiddenStatus(t, resp) + Client.Logout() _, resp = Client.GetTeam(team.Id, "") CheckUnauthorizedStatus(t, resp) @@ -474,12 +482,20 @@ func TestGetTeamByName(t *testing.T) { th.LoginTeamAdmin() - team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_INVITE} + team2 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_OPEN, AllowOpenInvite: false} rteam2, _ := Client.CreateTeam(team2) + team3 := &model.Team{DisplayName: "Name", Name: GenerateTestTeamName(), Email: GenerateTestEmail(), Type: model.TEAM_INVITE, AllowOpenInvite: true} + rteam3, _ := Client.CreateTeam(team3) + th.LoginBasic() + // AllowInviteOpen is false and team is open, and user is not on team _, resp = Client.GetTeamByName(rteam2.Name, "") CheckForbiddenStatus(t, resp) + + // AllowInviteOpen is true and team is invite only, and user is not on team + _, resp = Client.GetTeamByName(rteam3.Name, "") + CheckForbiddenStatus(t, resp) } func TestSearchAllTeams(t *testing.T) { |