mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Merge pull request #4866 from JaredReisinger/admin-user-pagination
Add pagination to /admin/users/list API
This commit is contained in:
@@ -25,7 +25,11 @@ class AdminUserIndexQuery
|
|||||||
}
|
}
|
||||||
|
|
||||||
def find_users(limit=100)
|
def find_users(limit=100)
|
||||||
find_users_query.limit(limit)
|
page = params[:page].to_i - 1
|
||||||
|
if page < 0
|
||||||
|
page = 0
|
||||||
|
end
|
||||||
|
find_users_query.limit(limit).offset(page * limit)
|
||||||
end
|
end
|
||||||
|
|
||||||
def count_users
|
def count_users
|
||||||
|
|||||||
@@ -43,6 +43,28 @@ describe AdminUserIndexQuery do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "pagination" do
|
||||||
|
it "defaults to the first page" do
|
||||||
|
query = ::AdminUserIndexQuery.new({})
|
||||||
|
expect(query.find_users.to_sql).to match("OFFSET 0")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "offsets by 100 by default for page 2" do
|
||||||
|
query = ::AdminUserIndexQuery.new({ page: "2"})
|
||||||
|
expect(query.find_users.to_sql).to match("OFFSET 100")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "offsets by limit for page 2" do
|
||||||
|
query = ::AdminUserIndexQuery.new({ page: "2"})
|
||||||
|
expect(query.find_users(10).to_sql).to match("OFFSET 10")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "ignores negative pages" do
|
||||||
|
query = ::AdminUserIndexQuery.new({ page: "-2" })
|
||||||
|
expect(query.find_users.to_sql).to match("OFFSET 0")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "no users with trust level" do
|
describe "no users with trust level" do
|
||||||
|
|
||||||
TrustLevel.levels.each do |key, value|
|
TrustLevel.levels.each do |key, value|
|
||||||
|
|||||||
Reference in New Issue
Block a user