mirror of
https://github.com/open-webui/open-webui
synced 2025-06-26 18:26:48 +00:00
Merge pull request #13267 from AnapatChaiwongse/dev
feat: implement pagination for /admin/users
This commit is contained in:
@@ -160,11 +160,26 @@ class UsersTable:
|
||||
return None
|
||||
|
||||
def get_users(
|
||||
self, skip: Optional[int] = None, limit: Optional[int] = None
|
||||
self,
|
||||
skip: Optional[int] = None,
|
||||
limit: Optional[int] = None,
|
||||
query_key: Optional[int] = None
|
||||
) -> list[UserModel]:
|
||||
with get_db() as db:
|
||||
|
||||
query = db.query(User).order_by(User.created_at.desc())
|
||||
if not query_key:
|
||||
query = db.query(User).order_by(User.created_at.desc())
|
||||
else:
|
||||
query = (
|
||||
db.query(User)
|
||||
.filter(
|
||||
or_(
|
||||
User.name.ilike(f'%{query_key}%'),
|
||||
User.email.ilike(f'%{query_key}%')
|
||||
)
|
||||
)
|
||||
.order_by(User.created_at.desc())
|
||||
)
|
||||
|
||||
if skip:
|
||||
query = query.offset(skip)
|
||||
|
||||
@@ -35,11 +35,21 @@ router = APIRouter()
|
||||
|
||||
@router.get("/", response_model=list[UserModel])
|
||||
async def get_users(
|
||||
skip: Optional[int] = None,
|
||||
page: Optional[int] = None,
|
||||
limit: Optional[int] = None,
|
||||
q: Optional[str] = None,
|
||||
user=Depends(get_admin_user),
|
||||
):
|
||||
return Users.get_users(skip, limit)
|
||||
if q:
|
||||
skip: Optional[int] = None
|
||||
if page:
|
||||
skip = (page - 1) * limit
|
||||
return Users.get_users(skip=skip, limit=limit, query_key=q)
|
||||
else:
|
||||
skip: Optional[int] = None
|
||||
if page:
|
||||
skip = (page - 1) * limit
|
||||
return Users.get_users(skip=skip, limit=limit)
|
||||
|
||||
|
||||
############################
|
||||
|
||||
Reference in New Issue
Block a user