summaryrefslogtreecommitdiffstats
path: root/app/team.go
diff options
context:
space:
mode:
authorJoramWilander <jwawilander@gmail.com>2018-07-10 15:01:43 -0400
committerJoramWilander <jwawilander@gmail.com>2018-07-10 15:01:43 -0400
commit6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005 (patch)
tree5564a47257bf6e85aaef711980c5b0fcb4d07dcc /app/team.go
parentc042ffa460296587579aff54b157a5109e022f7e (diff)
parent1e1a5e5e85240f25c4faddcb24c5a29a915fe6e4 (diff)
downloadchat-6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005.tar.gz
chat-6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005.tar.bz2
chat-6c7dc2d29ccac5f9925402f6be1a4c2a3c46c005.zip
Merge branch 'plugins-2'
Diffstat (limited to 'app/team.go')
-rw-r--r--app/team.go45
1 files changed, 37 insertions, 8 deletions
diff --git a/app/team.go b/app/team.go
index d9f19fab8..ff1037b7c 100644
--- a/app/team.go
+++ b/app/team.go
@@ -17,6 +17,7 @@ import (
"github.com/mattermost/mattermost-server/mlog"
"github.com/mattermost/mattermost-server/model"
+ "github.com/mattermost/mattermost-server/plugin"
"github.com/mattermost/mattermost-server/utils"
)
@@ -429,12 +430,28 @@ func (a *App) joinUserToTeam(team *model.Team, user *model.User) (*model.TeamMem
}
func (a *App) JoinUserToTeam(team *model.Team, user *model.User, userRequestorId string) *model.AppError {
- if _, alreadyAdded, err := a.joinUserToTeam(team, user); err != nil {
+ tm, alreadyAdded, err := a.joinUserToTeam(team, user)
+ if err != nil {
return err
} else if alreadyAdded {
return nil
}
+ if a.PluginsReady() {
+ var actor *model.User
+ if userRequestorId != "" {
+ actor, err = a.GetUser(userRequestorId)
+ }
+
+ a.Go(func() {
+ pluginContext := &plugin.Context{}
+ a.Plugins.RunMultiPluginHook(func(hooks plugin.Hooks) bool {
+ hooks.UserHasJoinedTeam(pluginContext, tm, actor)
+ return true
+ }, plugin.UserHasJoinedTeamId)
+ })
+ }
+
if uua := <-a.Srv.Store.User().UpdateUpdateAt(user.Id); uua.Err != nil {
return uua.Err
}
@@ -575,9 +592,8 @@ func (a *App) AddTeamMember(teamId, userId string) (*model.TeamMember, *model.Ap
return nil, err
}
- var teamMember *model.TeamMember
- var err *model.AppError
- if teamMember, err = a.GetTeamMember(teamId, userId); err != nil {
+ teamMember, err := a.GetTeamMember(teamId, userId)
+ if err != nil {
return nil, err
}
@@ -692,10 +708,8 @@ func (a *App) RemoveUserFromTeam(teamId string, userId string, requestorId strin
}
func (a *App) LeaveTeam(team *model.Team, user *model.User, requestorId string) *model.AppError {
- var teamMember *model.TeamMember
- var err *model.AppError
-
- if teamMember, err = a.GetTeamMember(team.Id, user.Id); err != nil {
+ teamMember, err := a.GetTeamMember(team.Id, user.Id)
+ if err != nil {
return model.NewAppError("LeaveTeam", "api.team.remove_user_from_team.missing.app_error", nil, err.Error(), http.StatusBadRequest)
}
@@ -753,6 +767,21 @@ func (a *App) LeaveTeam(team *model.Team, user *model.User, requestorId string)
return result.Err
}
+ if a.PluginsReady() {
+ var actor *model.User
+ if requestorId != "" {
+ actor, err = a.GetUser(requestorId)
+ }
+
+ a.Go(func() {
+ pluginContext := &plugin.Context{}
+ a.Plugins.RunMultiPluginHook(func(hooks plugin.Hooks) bool {
+ hooks.UserHasLeftTeam(pluginContext, teamMember, actor)
+ return true
+ }, plugin.UserHasLeftTeamId)
+ })
+ }
+
if uua := <-a.Srv.Store.User().UpdateUpdateAt(user.Id); uua.Err != nil {
return uua.Err
}