summaryrefslogtreecommitdiffstats
path: root/app/team.go
diff options
context:
space:
mode:
authorDaniel Schalla <daniel@schalla.me>2018-07-07 00:32:55 +0200
committerChristopher Speller <crspeller@gmail.com>2018-07-06 15:32:55 -0700
commit359f12db33d45b6ffade0872ddf3652a5c52f4a8 (patch)
tree6c60918089574d5bbc1e5121be276d23ef41773d /app/team.go
parent4c1ddcff10b359baf5728b334acb60cc3e1b1123 (diff)
downloadchat-359f12db33d45b6ffade0872ddf3652a5c52f4a8.tar.gz
chat-359f12db33d45b6ffade0872ddf3652a5c52f4a8.tar.bz2
chat-359f12db33d45b6ffade0872ddf3652a5c52f4a8.zip
First batch of new plugin api methods (#9022)
update api mocks Generated new hooks ChannelHasJoinedChannel Implementation User Left Team/Channel Hook; User Joined Team Hook Implementation Update RPC Client and Mocks gofmt go tests fix Add Config API Methods codegne Add Channel Has Been Created Hook Fix ChannelHasBeenCreated hook fix missing context param fix duplicate hooks; remove redudandcy
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 beb4b1449..db85b6788 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
}