diff --git a/app/team.go b/app/team.go index b989ee7ee1..0ad5fa2b88 100644 --- a/app/team.go +++ b/app/team.go @@ -785,21 +785,6 @@ func (a *App) JoinUserToTeam(c *request.Context, team *model.Team, user *model.U return teamMember, nil } - if pluginsEnvironment := a.GetPluginsEnvironment(); pluginsEnvironment != nil { - var actor *model.User - if userRequestorId != "" { - actor, _ = a.GetUser(userRequestorId) - } - - a.Srv().Go(func() { - pluginContext := pluginContext(c) - pluginsEnvironment.RunMultiPluginHook(func(hooks plugin.Hooks) bool { - hooks.UserHasJoinedTeam(pluginContext, teamMember, actor) - return true - }, plugin.UserHasJoinedTeamID) - }) - } - if _, err := a.Srv().Store.User().UpdateUpdateAt(user.Id); err != nil { return nil, model.NewAppError("JoinUserToTeam", "app.user.update_update.app_error", nil, err.Error(), http.StatusInternalServerError) } @@ -835,6 +820,21 @@ func (a *App) JoinUserToTeam(c *request.Context, team *model.Team, user *model.U a.InvalidateCacheForUser(user.Id) a.invalidateCacheForUserTeams(user.Id) + if pluginsEnvironment := a.GetPluginsEnvironment(); pluginsEnvironment != nil { + var actor *model.User + if userRequestorId != "" { + actor, _ = a.GetUser(userRequestorId) + } + + a.Srv().Go(func() { + pluginContext := pluginContext(c) + pluginsEnvironment.RunMultiPluginHook(func(hooks plugin.Hooks) bool { + hooks.UserHasJoinedTeam(pluginContext, teamMember, actor) + return true + }, plugin.UserHasJoinedTeamID) + }) + } + message := model.NewWebSocketEvent(model.WebsocketEventAddedToTeam, "", "", user.Id, nil) message.Add("team_id", team.Id) message.Add("user_id", user.Id)