diff options
author | Asaad Mahmood <Unknowngi@live.com> | 2015-09-09 10:56:48 +0500 |
---|---|---|
committer | Asaad Mahmood <Unknowngi@live.com> | 2015-09-09 10:56:48 +0500 |
commit | c7692a800ef43b63866b6f470b72eb1c3816484f (patch) | |
tree | 801314957491080f83789335f64fb979292529d9 /api/team.go | |
parent | 8c9c6de97041f8b2d646a7b4f03852c74e8e8fab (diff) | |
parent | 64d4890a4109618b383f7cfe1acc541bd72a0899 (diff) | |
download | chat-c7692a800ef43b63866b6f470b72eb1c3816484f.tar.gz chat-c7692a800ef43b63866b6f470b72eb1c3816484f.tar.bz2 chat-c7692a800ef43b63866b6f470b72eb1c3816484f.zip |
Merge branch 'master' of https://github.com/mattermost/platform into ui-changes
Diffstat (limited to 'api/team.go')
-rw-r--r-- | api/team.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/api/team.go b/api/team.go index 8cce384c3..e1b3b274a 100644 --- a/api/team.go +++ b/api/team.go @@ -32,7 +32,9 @@ func InitTeam(r *mux.Router) { sr.Handle("/update_name", ApiUserRequired(updateTeamDisplayName)).Methods("POST") sr.Handle("/update_valet_feature", ApiUserRequired(updateValetFeature)).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") + sr.Handle("/export_team", ApiUserRequired(exportTeam)).Methods("GET") } func signupTeam(c *Context, w http.ResponseWriter, r *http.Request) { @@ -675,3 +677,22 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/octet-stream") http.ServeContent(w, r, "MattermostImportLog.txt", time.Now(), bytes.NewReader(log.Bytes())) } + +func exportTeam(c *Context, w http.ResponseWriter, r *http.Request) { + if !c.HasPermissionsToTeam(c.Session.TeamId, "export") || !c.IsTeamAdmin(c.Session.UserId) { + c.Err = model.NewAppError("exportTeam", "Only a team admin can export data.", "userId="+c.Session.UserId) + c.Err.StatusCode = http.StatusForbidden + return + } + + options := ExportOptionsFromJson(r.Body) + + if link, err := ExportToFile(options); err != nil { + c.Err = err + return + } else { + result := map[string]string{} + result["link"] = link + w.Write([]byte(model.MapToJson(result))) + } +} |