Fix pagination bug on LDAP groups users listing (#11711)
* Fix pagination bug on LDAP groups users listing * Fixing consistency in parameters names
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
7e092886dc
Коммит
0a12fef33a
@@ -228,7 +228,7 @@ func (s *SqlGroupStore) GetMemberUsers(groupID string) ([]*model.User, *model.Ap
|
|||||||
return groupMembers, nil
|
return groupMembers, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *SqlGroupStore) GetMemberUsersPage(groupID string, offset int, limit int) ([]*model.User, *model.AppError) {
|
func (s *SqlGroupStore) GetMemberUsersPage(groupID string, page int, perPage int) ([]*model.User, *model.AppError) {
|
||||||
var groupMembers []*model.User
|
var groupMembers []*model.User
|
||||||
|
|
||||||
query := `
|
query := `
|
||||||
@@ -248,7 +248,7 @@ func (s *SqlGroupStore) GetMemberUsersPage(groupID string, offset int, limit int
|
|||||||
OFFSET
|
OFFSET
|
||||||
:Offset`
|
:Offset`
|
||||||
|
|
||||||
if _, err := s.GetReplica().Select(&groupMembers, query, map[string]interface{}{"GroupId": groupID, "Limit": limit, "Offset": offset}); err != nil {
|
if _, err := s.GetReplica().Select(&groupMembers, query, map[string]interface{}{"GroupId": groupID, "Limit": perPage, "Offset": page * perPage}); err != nil {
|
||||||
return nil, model.NewAppError("SqlGroupStore.GroupGetMemberUsersPage", "store.select_error", nil, err.Error(), http.StatusInternalServerError)
|
return nil, model.NewAppError("SqlGroupStore.GroupGetMemberUsersPage", "store.select_error", nil, err.Error(), http.StatusInternalServerError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -591,7 +591,7 @@ type GroupStore interface {
|
|||||||
Delete(groupID string) (*model.Group, *model.AppError)
|
Delete(groupID string) (*model.Group, *model.AppError)
|
||||||
|
|
||||||
GetMemberUsers(groupID string) ([]*model.User, *model.AppError)
|
GetMemberUsers(groupID string) ([]*model.User, *model.AppError)
|
||||||
GetMemberUsersPage(groupID string, offset int, limit int) ([]*model.User, *model.AppError)
|
GetMemberUsersPage(groupID string, page int, perPage int) ([]*model.User, *model.AppError)
|
||||||
GetMemberCount(groupID string) (int64, *model.AppError)
|
GetMemberCount(groupID string) (int64, *model.AppError)
|
||||||
UpsertMember(groupID string, userID string) (*model.GroupMember, *model.AppError)
|
UpsertMember(groupID string, userID string) (*model.GroupMember, *model.AppError)
|
||||||
DeleteMember(groupID string, userID string) (*model.GroupMember, *model.AppError)
|
DeleteMember(groupID string, userID string) (*model.GroupMember, *model.AppError)
|
||||||
|
|||||||
@@ -510,19 +510,30 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
|
|||||||
_, err = ss.Group().UpsertMember(group.Id, user2.Id)
|
_, err = ss.Group().UpsertMember(group.Id, user2.Id)
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
|
|
||||||
|
u3 := &model.User{
|
||||||
|
Email: MakeEmail(),
|
||||||
|
Username: model.NewId(),
|
||||||
|
}
|
||||||
|
user3, err := ss.User().Save(u3)
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
|
_, err = ss.Group().UpsertMember(group.Id, user3.Id)
|
||||||
|
require.Nil(t, err)
|
||||||
|
|
||||||
// Check returns members
|
// Check returns members
|
||||||
groupMembers, err := ss.Group().GetMemberUsersPage(group.Id, 0, 100)
|
groupMembers, err := ss.Group().GetMemberUsersPage(group.Id, 0, 100)
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.Equal(t, 2, len(groupMembers))
|
require.Equal(t, 3, len(groupMembers))
|
||||||
|
|
||||||
// Check page 1
|
// Check page 1
|
||||||
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 0, 1)
|
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 0, 2)
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.Equal(t, 1, len(groupMembers))
|
require.Equal(t, 2, len(groupMembers))
|
||||||
require.Equal(t, user2.Id, groupMembers[0].Id)
|
require.Equal(t, user3.Id, groupMembers[0].Id)
|
||||||
|
require.Equal(t, user2.Id, groupMembers[1].Id)
|
||||||
|
|
||||||
// Check page 2
|
// Check page 2
|
||||||
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 1, 1)
|
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 1, 2)
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.Equal(t, 1, len(groupMembers))
|
require.Equal(t, 1, len(groupMembers))
|
||||||
require.Equal(t, user1.Id, groupMembers[0].Id)
|
require.Equal(t, user1.Id, groupMembers[0].Id)
|
||||||
@@ -539,7 +550,7 @@ func testGroupGetMemberUsersPage(t *testing.T, ss store.Store) {
|
|||||||
// Should not return deleted members
|
// Should not return deleted members
|
||||||
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 0, 100)
|
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 0, 100)
|
||||||
require.Nil(t, err)
|
require.Nil(t, err)
|
||||||
require.Equal(t, 1, len(groupMembers))
|
require.Equal(t, 2, len(groupMembers))
|
||||||
}
|
}
|
||||||
|
|
||||||
func testUpsertMember(t *testing.T, ss store.Store) {
|
func testUpsertMember(t *testing.T, ss store.Store) {
|
||||||
|
|||||||
@@ -577,13 +577,13 @@ func (_m *GroupStore) GetMemberUsers(groupID string) ([]*model.User, *model.AppE
|
|||||||
return r0, r1
|
return r0, r1
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMemberUsersPage provides a mock function with given fields: groupID, offset, limit
|
// GetMemberUsersPage provides a mock function with given fields: groupID, page, perPage
|
||||||
func (_m *GroupStore) GetMemberUsersPage(groupID string, offset int, limit int) ([]*model.User, *model.AppError) {
|
func (_m *GroupStore) GetMemberUsersPage(groupID string, page int, perPage int) ([]*model.User, *model.AppError) {
|
||||||
ret := _m.Called(groupID, offset, limit)
|
ret := _m.Called(groupID, page, perPage)
|
||||||
|
|
||||||
var r0 []*model.User
|
var r0 []*model.User
|
||||||
if rf, ok := ret.Get(0).(func(string, int, int) []*model.User); ok {
|
if rf, ok := ret.Get(0).(func(string, int, int) []*model.User); ok {
|
||||||
r0 = rf(groupID, offset, limit)
|
r0 = rf(groupID, page, perPage)
|
||||||
} else {
|
} else {
|
||||||
if ret.Get(0) != nil {
|
if ret.Get(0) != nil {
|
||||||
r0 = ret.Get(0).([]*model.User)
|
r0 = ret.Get(0).([]*model.User)
|
||||||
@@ -592,7 +592,7 @@ func (_m *GroupStore) GetMemberUsersPage(groupID string, offset int, limit int)
|
|||||||
|
|
||||||
var r1 *model.AppError
|
var r1 *model.AppError
|
||||||
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
|
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
|
||||||
r1 = rf(groupID, offset, limit)
|
r1 = rf(groupID, page, perPage)
|
||||||
} else {
|
} else {
|
||||||
if ret.Get(1) != nil {
|
if ret.Get(1) != nil {
|
||||||
r1 = ret.Get(1).(*model.AppError)
|
r1 = ret.Get(1).(*model.AppError)
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user