[MM-48049] Including users who were removed from group in not_in_group response (#21559)

Automatic Merge
Этот коммит содержится в:
Ben Cooke
2022-11-04 13:10:26 -04:00
коммит произвёл GitHub
родитель b73bf144aa
Коммит d855916c6e
3 изменённых файлов: 44 добавлений и 4 удалений

Просмотреть файл

@@ -1215,6 +1215,47 @@ func TestSearchUsers(t *testing.T) {
require.NoError(t, err)
require.Equal(t, users[0].Id, th.BasicUser.Id)
})
id = model.NewId()
group, appErr = th.App.CreateGroup(&model.Group{
DisplayName: "dn-foo_" + id,
Name: model.NewString("name" + id),
Source: model.GroupSourceCustom,
Description: "description_" + id,
RemoteId: model.NewString(model.NewId()),
})
assert.Nil(t, appErr)
th.App.Srv().SetLicense(model.NewTestLicenseSKU(model.LicenseShortSkuProfessional, "ldap"))
search = &model.UserSearch{Term: th.BasicUser.Username, NotInGroupId: group.Id}
t.Run("Returns users not in group", func(t *testing.T) {
users, _, err = th.Client.SearchUsers(search)
require.NoError(t, err)
require.Equal(t, users[0].Id, th.BasicUser.Id)
})
_, appErr = th.App.UpsertGroupMember(group.Id, th.BasicUser.Id)
assert.Nil(t, appErr)
t.Run("Returns empty list for not in group", func(t *testing.T) {
users, _, err = th.Client.SearchUsers(search)
require.NoError(t, err)
assert.Len(t, users, 0)
})
members := &model.GroupModifyMembers{
UserIds: []string{th.BasicUser.Id},
}
_, _, delErr := th.Client.DeleteGroupMembers(group.Id, members)
require.NoError(t, delErr)
t.Run("Returns user not in group after they were deleted from group", func(t *testing.T) {
users, _, err = th.Client.SearchUsers(search)
require.NoError(t, err)
require.Equal(t, users[0].Id, th.BasicUser.Id)
})
}
func findUserInList(id string, users []*model.User) bool { //nolint:unused

Просмотреть файл

@@ -1527,7 +1527,7 @@ func (us SqlUserStore) SearchInGroup(groupID string, term string, options *model
func (us SqlUserStore) SearchNotInGroup(groupID string, term string, options *model.UserSearchOptions) ([]*model.User, error) {
query := us.usersQuery.
LeftJoin("GroupMembers gm ON ( gm.UserId = u.Id AND gm.GroupId = ? )", groupID).
Where("gm.UserId IS NULL").
Where("(gm.UserId IS NULL OR gm.deleteat != 0)").
OrderBy("Username ASC").
Limit(uint64(options.Limit))

Просмотреть файл

@@ -844,14 +844,13 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 0, 2, nil)
require.NoError(t, err)
require.Equal(t, 2, len(groupMembers))
require.Equal(t, user3.Id, groupMembers[0].Id)
require.Equal(t, user2.Id, groupMembers[1].Id)
require.ElementsMatch(t, []*model.User{user2, user3}, groupMembers)
// Check page 2
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 1, 2, nil)
require.NoError(t, err)
require.Equal(t, 1, len(groupMembers))
require.Equal(t, user1.Id, groupMembers[0].Id)
require.ElementsMatch(t, []*model.User{user1}, groupMembers)
// Check madeup id
groupMembers, err = ss.Group().GetMemberUsersPage(model.NewId(), 0, 100, nil)