summaryrefslogtreecommitdiffstats
path: root/api4/team.go
diff options
context:
space:
mode:
authorJoram Wilander <jwawilander@gmail.com>2017-06-26 08:16:57 -0400
committerGitHub <noreply@github.com>2017-06-26 08:16:57 -0400
commit23ccfc845ca2350075f6027e16c6206fc7b71716 (patch)
tree3fd1f896a5a24b43913be03b21c85638dd7c356e /api4/team.go
parentfe7e9d95b30ae2195fcba68db960866db91ce045 (diff)
downloadchat-23ccfc845ca2350075f6027e16c6206fc7b71716.tar.gz
chat-23ccfc845ca2350075f6027e16c6206fc7b71716.tar.bz2
chat-23ccfc845ca2350075f6027e16c6206fc7b71716.zip
Move remaining actions over to use redux and v4 endpoints (#6720)
Diffstat (limited to 'api4/team.go')
-rw-r--r--api4/team.go38
1 files changed, 26 insertions, 12 deletions
diff --git a/api4/team.go b/api4/team.go
index 00a16d5c1..e51dcc16b 100644
--- a/api4/team.go
+++ b/api4/team.go
@@ -37,6 +37,7 @@ func InitTeam() {
BaseRoutes.TeamMembers.Handle("/ids", ApiSessionRequired(getTeamMembersByIds)).Methods("POST")
BaseRoutes.TeamMembersForUser.Handle("", ApiSessionRequired(getTeamMembersForUser)).Methods("GET")
BaseRoutes.TeamMembers.Handle("", ApiSessionRequired(addTeamMember)).Methods("POST")
+ BaseRoutes.Teams.Handle("/members/invite", ApiSessionRequired(addUserToTeamFromInvite)).Methods("POST")
BaseRoutes.TeamMembers.Handle("/batch", ApiSessionRequired(addTeamMembers)).Methods("POST")
BaseRoutes.TeamMember.Handle("", ApiSessionRequired(removeTeamMember)).Methods("DELETE")
@@ -341,23 +342,36 @@ func addTeamMember(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
+ if len(member.UserId) != 26 {
+ c.SetInvalidParam("user_id")
+ return
+ }
+
+ if !app.SessionHasPermissionToTeam(c.Session, member.TeamId, model.PERMISSION_ADD_USER_TO_TEAM) {
+ c.SetPermissionError(model.PERMISSION_ADD_USER_TO_TEAM)
+ return
+ }
+
+ member, err = app.AddTeamMember(member.TeamId, member.UserId)
+
+ if err != nil {
+ c.Err = err
+ return
+ }
+
+ w.WriteHeader(http.StatusCreated)
+ w.Write([]byte(member.ToJson()))
+}
+
+func addUserToTeamFromInvite(c *Context, w http.ResponseWriter, r *http.Request) {
hash := r.URL.Query().Get("hash")
data := r.URL.Query().Get("data")
inviteId := r.URL.Query().Get("invite_id")
- if len(member.UserId) > 0 {
- if len(member.UserId) != 26 {
- c.SetInvalidParam("user_id")
- return
- }
-
- if !app.SessionHasPermissionToTeam(c.Session, member.TeamId, model.PERMISSION_ADD_USER_TO_TEAM) {
- c.SetPermissionError(model.PERMISSION_ADD_USER_TO_TEAM)
- return
- }
+ var member *model.TeamMember
+ var err *model.AppError
- member, err = app.AddTeamMember(member.TeamId, member.UserId)
- } else if len(hash) > 0 && len(data) > 0 {
+ if len(hash) > 0 && len(data) > 0 {
member, err = app.AddTeamMemberByHash(c.Session.UserId, hash, data)
if err != nil {
err = model.NewAppError("addTeamMember", "api.team.add_user_to_team.invalid_data.app_error", nil, "", http.StatusNotFound)