mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Fix pagination bug on LDAP groups users listing (#11711)
* Fix pagination bug on LDAP groups users listing * Fixing consistency in parameters names
This commit is contained in:
@@ -228,7 +228,7 @@ func (s *SqlGroupStore) GetMemberUsers(groupID string) ([]*model.User, *model.Ap
|
||||
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
|
||||
|
||||
query := `
|
||||
@@ -248,7 +248,7 @@ func (s *SqlGroupStore) GetMemberUsersPage(groupID string, offset int, limit int
|
||||
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)
|
||||
}
|
||||
|
||||
|
||||
@@ -591,7 +591,7 @@ type GroupStore interface {
|
||||
Delete(groupID string) (*model.Group, *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)
|
||||
UpsertMember(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)
|
||||
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
|
||||
groupMembers, err := ss.Group().GetMemberUsersPage(group.Id, 0, 100)
|
||||
require.Nil(t, err)
|
||||
require.Equal(t, 2, len(groupMembers))
|
||||
require.Equal(t, 3, len(groupMembers))
|
||||
|
||||
// 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.Equal(t, 1, len(groupMembers))
|
||||
require.Equal(t, user2.Id, groupMembers[0].Id)
|
||||
require.Equal(t, 2, len(groupMembers))
|
||||
require.Equal(t, user3.Id, groupMembers[0].Id)
|
||||
require.Equal(t, user2.Id, groupMembers[1].Id)
|
||||
|
||||
// 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.Equal(t, 1, len(groupMembers))
|
||||
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
|
||||
groupMembers, err = ss.Group().GetMemberUsersPage(group.Id, 0, 100)
|
||||
require.Nil(t, err)
|
||||
require.Equal(t, 1, len(groupMembers))
|
||||
require.Equal(t, 2, len(groupMembers))
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
// GetMemberUsersPage provides a mock function with given fields: groupID, offset, limit
|
||||
func (_m *GroupStore) GetMemberUsersPage(groupID string, offset int, limit int) ([]*model.User, *model.AppError) {
|
||||
ret := _m.Called(groupID, offset, limit)
|
||||
// GetMemberUsersPage provides a mock function with given fields: groupID, page, perPage
|
||||
func (_m *GroupStore) GetMemberUsersPage(groupID string, page int, perPage int) ([]*model.User, *model.AppError) {
|
||||
ret := _m.Called(groupID, page, perPage)
|
||||
|
||||
var r0 []*model.User
|
||||
if rf, ok := ret.Get(0).(func(string, int, int) []*model.User); ok {
|
||||
r0 = rf(groupID, offset, limit)
|
||||
r0 = rf(groupID, page, perPage)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).([]*model.User)
|
||||
@@ -592,7 +592,7 @@ func (_m *GroupStore) GetMemberUsersPage(groupID string, offset int, limit int)
|
||||
|
||||
var r1 *model.AppError
|
||||
if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok {
|
||||
r1 = rf(groupID, offset, limit)
|
||||
r1 = rf(groupID, page, perPage)
|
||||
} else {
|
||||
if ret.Get(1) != nil {
|
||||
r1 = ret.Get(1).(*model.AppError)
|
||||
|
||||
Reference in New Issue
Block a user