diff options
Diffstat (limited to 'app/channel.go')
-rw-r--r-- | app/channel.go | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/app/channel.go b/app/channel.go index a1a70560d..4164b37ce 100644 --- a/app/channel.go +++ b/app/channel.go @@ -439,7 +439,7 @@ func DeleteChannel(channel *model.Channel, userId string) *model.AppError { return nil } -func addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError) { +func addUserToChannel(user *model.User, channel *model.Channel, teamMember *model.TeamMember) (*model.ChannelMember, *model.AppError) { if channel.DeleteAt > 0 { return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user_to_channel.deleted.app_error", nil, "") } @@ -448,18 +448,8 @@ func addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelM return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user_to_channel.type.app_error", nil, "") } - tmchan := Srv.Store.Team().GetMember(channel.TeamId, user.Id) cmchan := Srv.Store.Channel().GetMember(channel.Id, user.Id) - if result := <-tmchan; result.Err != nil { - return nil, result.Err - } else { - teamMember := result.Data.(*model.TeamMember) - if teamMember.DeleteAt > 0 { - return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user.to.channel.failed.deleted.app_error", nil, "") - } - } - if result := <-cmchan; result.Err != nil { if result.Err.Id != store.MISSING_CHANNEL_MEMBER_ERROR { return nil, result.Err @@ -489,8 +479,19 @@ func addUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelM } func AddUserToChannel(user *model.User, channel *model.Channel) (*model.ChannelMember, *model.AppError) { + tmchan := Srv.Store.Team().GetMember(channel.TeamId, user.Id) + var teamMember *model.TeamMember + + if result := <-tmchan; result.Err != nil { + return nil, result.Err + } else { + teamMember = result.Data.(*model.TeamMember) + if teamMember.DeleteAt > 0 { + return nil, model.NewLocAppError("AddUserToChannel", "api.channel.add_user.to.channel.failed.deleted.app_error", nil, "") + } + } - newMember, err := addUserToChannel(user, channel) + newMember, err := addUserToChannel(user, channel, teamMember) if err != nil { return nil, err } @@ -724,6 +725,14 @@ func GetChannelsForUser(teamId string, userId string) (*model.ChannelList, *mode } } +func GetDeletedChannels(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError) { + if result := <-Srv.Store.Channel().GetDeleted(teamId, offset, limit); result.Err != nil { + return nil, result.Err + } else { + return result.Data.(*model.ChannelList), nil + } +} + func GetChannelsUserNotIn(teamId string, userId string, offset int, limit int) (*model.ChannelList, *model.AppError) { if result := <-Srv.Store.Channel().GetMoreChannels(teamId, userId, offset, limit); result.Err != nil { return nil, result.Err |