[MM-33908] Resync LDAP Groups to Teams and Channels (#17372)
* add includeRemovedMembers flag * fix API call in client4.go * remove check for 'since' * add comments * run make app-layers * re-run CI tests Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
3e5b0a7d7f
Коммит
9f4902e188
@@ -15,8 +15,10 @@ import (
|
||||
// createDefaultChannelMemberships adds users to channels based on their group memberships and how those groups are
|
||||
// configured to sync with channels for group members on or after the given timestamp. If a channelID is given
|
||||
// only that channel's members are created. If channelID is nil all channel memberships are created.
|
||||
func (a *App) createDefaultChannelMemberships(since int64, channelID *string) error {
|
||||
channelMembers, appErr := a.ChannelMembersToAdd(since, channelID)
|
||||
// If includeRemovedMembers is true, then channel members who left or were removed from the channel will
|
||||
// be re-added; otherwise, they will not be re-added.
|
||||
func (a *App) createDefaultChannelMemberships(since int64, channelID *string, includeRemovedMembers bool) error {
|
||||
channelMembers, appErr := a.ChannelMembersToAdd(since, channelID, includeRemovedMembers)
|
||||
if appErr != nil {
|
||||
return appErr
|
||||
}
|
||||
@@ -78,8 +80,10 @@ func (a *App) createDefaultChannelMemberships(since int64, channelID *string) er
|
||||
// createDefaultTeamMemberships adds users to teams based on their group memberships and how those groups are
|
||||
// configured to sync with teams for group members on or after the given timestamp. If a teamID is given
|
||||
// only that team's members are created. If teamID is nil all team memberships are created.
|
||||
func (a *App) createDefaultTeamMemberships(since int64, teamID *string) error {
|
||||
teamMembers, appErr := a.TeamMembersToAdd(since, teamID)
|
||||
// If includeRemovedMembers is true, then team members who left or were removed from the team will
|
||||
// be re-added; otherwise, they will not be re-added.
|
||||
func (a *App) createDefaultTeamMemberships(since int64, teamID *string, includeRemovedMembers bool) error {
|
||||
teamMembers, appErr := a.TeamMembersToAdd(since, teamID, includeRemovedMembers)
|
||||
if appErr != nil {
|
||||
return appErr
|
||||
}
|
||||
@@ -108,13 +112,15 @@ func (a *App) createDefaultTeamMemberships(since int64, teamID *string) error {
|
||||
|
||||
// CreateDefaultMemberships adds users to teams and channels based on their group memberships and how those groups
|
||||
// are configured to sync with teams and channels for group members on or after the given timestamp.
|
||||
func (a *App) CreateDefaultMemberships(since int64) error {
|
||||
err := a.createDefaultTeamMemberships(since, nil)
|
||||
// If includeRemovedMembers is true, then members who left or were removed from a team/channel will
|
||||
// be re-added; otherwise, they will not be re-added.
|
||||
func (a *App) CreateDefaultMemberships(since int64, includeRemovedMembers bool) error {
|
||||
err := a.createDefaultTeamMemberships(since, nil, includeRemovedMembers)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
err = a.createDefaultChannelMemberships(since, nil)
|
||||
err = a.createDefaultChannelMemberships(since, nil, includeRemovedMembers)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -226,7 +232,7 @@ func (a *App) SyncSyncableRoles(syncableID string, syncableType model.GroupSynca
|
||||
|
||||
// SyncRolesAndMembership updates the SchemeAdmin status and membership of all of the members of the given
|
||||
// syncable.
|
||||
func (a *App) SyncRolesAndMembership(syncableID string, syncableType model.GroupSyncableType) {
|
||||
func (a *App) SyncRolesAndMembership(syncableID string, syncableType model.GroupSyncableType, includeRemovedMembers bool) {
|
||||
a.SyncSyncableRoles(syncableID, syncableType)
|
||||
|
||||
lastJob, _ := a.Srv().Store.Job().GetNewestJobByStatusAndType(model.JOB_STATUS_SUCCESS, model.JOB_TYPE_LDAP_SYNC)
|
||||
@@ -237,11 +243,11 @@ func (a *App) SyncRolesAndMembership(syncableID string, syncableType model.Group
|
||||
|
||||
switch syncableType {
|
||||
case model.GroupSyncableTypeTeam:
|
||||
a.createDefaultTeamMemberships(since, &syncableID)
|
||||
a.createDefaultTeamMemberships(since, &syncableID, includeRemovedMembers)
|
||||
a.deleteGroupConstrainedTeamMemberships(&syncableID)
|
||||
a.ClearTeamMembersCache(syncableID)
|
||||
case model.GroupSyncableTypeChannel:
|
||||
a.createDefaultChannelMemberships(since, &syncableID)
|
||||
a.createDefaultChannelMemberships(since, &syncableID, includeRemovedMembers)
|
||||
a.deleteGroupConstrainedChannelMemberships(&syncableID)
|
||||
a.ClearChannelMembersCache(syncableID)
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user