From 32460bf63bc07c69ee5da0bb5640b879facb5538 Mon Sep 17 00:00:00 2001 From: George Goldberg Date: Tue, 4 Apr 2017 18:19:42 +0100 Subject: PLT-6198: Use added to channel system message on default channels. (#5969) Use a different sytem message when a user was added to a default channel by someone else than when they joined themselves. --- app/channel.go | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'app/channel.go') diff --git a/app/channel.go b/app/channel.go index c1e0afce9..1c04905c2 100644 --- a/app/channel.go +++ b/app/channel.go @@ -32,9 +32,18 @@ func CreateDefaultChannels(teamId string) ([]*model.Channel, *model.AppError) { return channels, nil } -func JoinDefaultChannels(teamId string, user *model.User, channelRole string) *model.AppError { +func JoinDefaultChannels(teamId string, user *model.User, channelRole string, userRequestorId string) *model.AppError { var err *model.AppError = nil + var requestor *model.User + if userRequestorId != "" { + if u := <-Srv.Store.User().Get(userRequestorId); u.Err != nil { + return u.Err + } else { + requestor = u.Data.(*model.User) + } + } + if result := <-Srv.Store.Channel().GetByName(teamId, "town-square", true); result.Err != nil { err = result.Err } else { @@ -47,8 +56,14 @@ func JoinDefaultChannels(teamId string, user *model.User, channelRole string) *m err = cmResult.Err } - if err := postJoinChannelMessage(user, townSquare); err != nil { - l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err) + if requestor == nil { + if err := postJoinChannelMessage(user, townSquare); err != nil { + l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err) + } + } else { + if err := PostAddToChannelMessage(requestor, user, townSquare); err != nil { + l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err) + } } InvalidateCacheForChannelMembers(result.Data.(*model.Channel).Id) @@ -66,8 +81,14 @@ func JoinDefaultChannels(teamId string, user *model.User, channelRole string) *m err = cmResult.Err } - if err := postJoinChannelMessage(user, offTopic); err != nil { - l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err) + if requestor == nil { + if err := postJoinChannelMessage(user, offTopic); err != nil { + l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err) + } + } else { + if err := PostAddToChannelMessage(requestor, user, offTopic); err != nil { + l4g.Error(utils.T("api.channel.post_user_add_remove_message_and_forget.error"), err) + } } InvalidateCacheForChannelMembers(result.Data.(*model.Channel).Id) -- cgit v1.2.3-1-g7c22