[MM-25568] LDAP Sync skip users and log when they dont match the restricted email of a team or channel (#14895)
* Dont return an error if createDefaultChannelMemberships fails due to email domain restriction on team * Add test ensuring sync works as intended and only skips over failed users * Remove unneeded line * Update wording * Trigger CI
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
d3156395a1
Коммит
9e12a34e3c
@@ -328,6 +328,48 @@ func TestCreateDefaultMemberships(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Errorf("expected channel member: %s", err.Error())
|
||||
}
|
||||
|
||||
t.Run("Team with restricted domains skips over members that do not match the allowed domains", func(t *testing.T) {
|
||||
restrictedUser := th.CreateUser()
|
||||
restrictedUser.Email = "restricted@mattermost.org"
|
||||
_, err = th.App.UpdateUser(restrictedUser, false)
|
||||
require.Nil(t, err)
|
||||
_, err = th.App.UpsertGroupMember(scienceGroup.Id, restrictedUser.Id)
|
||||
require.Nil(t, err)
|
||||
|
||||
restrictedTeam, err := th.App.CreateTeam(&model.Team{
|
||||
DisplayName: "Restricted",
|
||||
Name: "restricted" + model.NewId(),
|
||||
Email: "restricted@mattermost.org",
|
||||
AllowedDomains: "mattermost.org",
|
||||
Type: model.TEAM_OPEN,
|
||||
})
|
||||
require.Nil(t, err)
|
||||
_, err = th.App.UpsertGroupSyncable(model.NewGroupTeam(scienceGroup.Id, restrictedTeam.Id, true))
|
||||
require.Nil(t, err)
|
||||
|
||||
restrictedChannel, err := th.App.CreateChannel(&model.Channel{
|
||||
TeamId: restrictedTeam.Id,
|
||||
DisplayName: "Restricted",
|
||||
Name: "restricted" + model.NewId(),
|
||||
Type: model.CHANNEL_OPEN,
|
||||
}, false)
|
||||
require.Nil(t, err)
|
||||
_, err = th.App.UpsertGroupSyncable(model.NewGroupChannel(scienceGroup.Id, restrictedChannel.Id, true))
|
||||
require.Nil(t, err)
|
||||
|
||||
pErr = th.App.CreateDefaultMemberships(0)
|
||||
require.Nil(t, pErr)
|
||||
|
||||
// Ensure only the restricted user was added to both the team and channel
|
||||
cMembersCount, err = th.App.GetChannelMemberCount(restrictedChannel.Id)
|
||||
require.Nil(t, err)
|
||||
require.Equal(t, cMembersCount, int64(1))
|
||||
tmembers, err := th.App.GetTeamMembers(restrictedTeam.Id, 0, 100, nil)
|
||||
require.Nil(t, err)
|
||||
require.Len(t, tmembers, 1)
|
||||
require.Equal(t, tmembers[0].UserId, restrictedUser.Id)
|
||||
})
|
||||
}
|
||||
|
||||
func TestDeleteGroupMemberships(t *testing.T) {
|
||||
|
||||
Ссылка в новой задаче
Block a user