github.com/vnforks/kid@v5.11.1+incompatible/app/syncables.go (about) 1 // Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package app 5 6 import ( 7 "github.com/mattermost/mattermost-server/mlog" 8 ) 9 10 // PopulateSyncablesSince adds users to teams and channels based on their group memberships and how those groups are 11 // configured to sync with teams and channels for group members on or after the given timestamp. 12 func (a *App) PopulateSyncablesSince(groupMembersCreatedAfter int64) error { 13 userTeamIDs, appErr := a.PendingAutoAddTeamMembers(groupMembersCreatedAfter) 14 if appErr != nil { 15 return appErr 16 } 17 18 for _, userTeam := range userTeamIDs { 19 _, err := a.AddTeamMember(userTeam.TeamID, userTeam.UserID) 20 if err != nil { 21 return err 22 } 23 24 a.Log.Info("added teammember", 25 mlog.String("user_id", userTeam.UserID), 26 mlog.String("team_id", userTeam.TeamID), 27 ) 28 } 29 30 userChannelIDs, appErr := a.PendingAutoAddChannelMembers(groupMembersCreatedAfter) 31 if appErr != nil { 32 return appErr 33 } 34 35 for _, userChannel := range userChannelIDs { 36 channel, err := a.GetChannel(userChannel.ChannelID) 37 if err != nil { 38 return err 39 } 40 41 // First add user to team 42 _, err = a.AddTeamMember(channel.TeamId, userChannel.UserID) 43 if err != nil { 44 return err 45 } 46 a.Log.Info("added teammember", 47 mlog.String("user_id", userChannel.UserID), 48 mlog.String("team_id", channel.TeamId), 49 ) 50 51 _, err = a.AddChannelMember(userChannel.UserID, channel, "", "") 52 if err != nil { 53 return err 54 } 55 56 a.Log.Info("added channelmember", 57 mlog.String("user_id", userChannel.UserID), 58 mlog.String("channel_id", userChannel.ChannelID), 59 ) 60 } 61 62 return nil 63 }