summaryrefslogtreecommitdiffstats
path: root/api4/team.go
diff options
context:
space:
mode:
Diffstat (limited to 'api4/team.go')
-rw-r--r--api4/team.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/api4/team.go b/api4/team.go
index db42dc6b6..9071458cb 100644
--- a/api4/team.go
+++ b/api4/team.go
@@ -16,6 +16,7 @@ func InitTeam() {
l4g.Debug(utils.T("api.team.init.debug"))
BaseRoutes.Teams.Handle("", ApiSessionRequired(createTeam)).Methods("POST")
+ BaseRoutes.Teams.Handle("", ApiSessionRequired(getAllTeams)).Methods("GET")
BaseRoutes.TeamsForUser.Handle("", ApiSessionRequired(getTeamsForUser)).Methods("GET")
BaseRoutes.Team.Handle("", ApiSessionRequired(getTeam)).Methods("GET")
@@ -189,3 +190,21 @@ func updateTeamMemberRoles(c *Context, w http.ResponseWriter, r *http.Request) {
ReturnStatusOK(w)
}
+
+func getAllTeams(c *Context, w http.ResponseWriter, r *http.Request) {
+ var teams []*model.Team
+ var err *model.AppError
+
+ if app.SessionHasPermissionTo(c.Session, model.PERMISSION_MANAGE_SYSTEM) {
+ teams, err = app.GetAllTeamsPage(c.Params.Page, c.Params.PerPage)
+ } else {
+ teams, err = app.GetAllOpenTeamsPage(c.Params.Page, c.Params.PerPage)
+ }
+
+ if err != nil {
+ c.Err = err
+ return
+ }
+
+ w.Write([]byte(model.TeamListToJson(teams)))
+}