diff options
author | Carlos Tadeu Panato Junior <ctadeu@gmail.com> | 2017-04-04 03:32:09 +0200 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2017-04-03 21:32:09 -0400 |
commit | 9dce50281471f356a63544680907cbd7346e7dc2 (patch) | |
tree | 501a65edceb36f3883a9b29f274ffd7220763b3c /api4/team.go | |
parent | d5f56e678ac2aebd65e06ee3a079850013eb0ba2 (diff) | |
download | chat-9dce50281471f356a63544680907cbd7346e7dc2.tar.gz chat-9dce50281471f356a63544680907cbd7346e7dc2.tar.bz2 chat-9dce50281471f356a63544680907cbd7346e7dc2.zip |
Implement POST /teams/{team_id}/invite/email for apiV4 (#5944)
Diffstat (limited to 'api4/team.go')
-rw-r--r-- | api4/team.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/api4/team.go b/api4/team.go index a420e77f4..8da308a1c 100644 --- a/api4/team.go +++ b/api4/team.go @@ -48,6 +48,7 @@ func InitTeam() { BaseRoutes.TeamMember.Handle("/roles", ApiSessionRequired(updateTeamMemberRoles)).Methods("PUT") BaseRoutes.Team.Handle("/import", ApiSessionRequired(importTeam)).Methods("POST") + BaseRoutes.Team.Handle("/invite/email", ApiSessionRequired(inviteUsersToTeam)).Methods("POST") } func createTeam(c *Context, w http.ResponseWriter, r *http.Request) { @@ -648,3 +649,35 @@ func importTeam(c *Context, w http.ResponseWriter, r *http.Request) { } io.Copy(w, bytes.NewReader(log.Bytes())) } + +func inviteUsersToTeam(c *Context, w http.ResponseWriter, r *http.Request) { + c.RequireTeamId() + if c.Err != nil { + return + } + + if !app.SessionHasPermissionToTeam(c.Session, c.Params.TeamId, model.PERMISSION_INVITE_USER) { + c.SetPermissionError(model.PERMISSION_INVITE_USER) + return + } + + if !app.SessionHasPermissionToTeam(c.Session, c.Params.TeamId, model.PERMISSION_ADD_USER_TO_TEAM) { + c.SetPermissionError(model.PERMISSION_INVITE_USER) + return + } + + emailList := model.ArrayFromJson(r.Body) + + if len(emailList) == 0 { + c.SetInvalidParam("user_email") + return + } + + err := app.InviteNewUsersToTeam(emailList, c.Params.TeamId, c.Session.UserId, utils.GetSiteURL()) + if err != nil { + c.Err = err + return + } + + ReturnStatusOK(w) +} |