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  }