summaryrefslogtreecommitdiffstats
path: root/api4/team.go
diff options
context:
space:
mode:
authorCarlos Tadeu Panato Junior <ctadeu@gmail.com>2017-04-04 03:32:09 +0200
committerJoram Wilander <jwawilander@gmail.com>2017-04-03 21:32:09 -0400
commit9dce50281471f356a63544680907cbd7346e7dc2 (patch)
tree501a65edceb36f3883a9b29f274ffd7220763b3c /api4/team.go
parentd5f56e678ac2aebd65e06ee3a079850013eb0ba2 (diff)
downloadchat-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.go33
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)
+}