fix: replace deprecated fastapi query regex constraints

parent 70701894
...@@ -756,11 +756,11 @@ async def dashboard_users( ...@@ -756,11 +756,11 @@ async def dashboard_users(
page: int = Query(1, ge=1), page: int = Query(1, ge=1),
limit: int = Query(25, ge=1, le=100), limit: int = Query(25, ge=1, le=100),
search: str = Query(None, max_length=100), search: str = Query(None, max_length=100),
order_by: str = Query('created_at', regex='^(username|last_login|created_at|tier_name)$'), order_by: str = Query('created_at', pattern='^(username|last_login|created_at|tier_name)$'),
direction: str = Query('desc', regex='^(asc|desc)$'), direction: str = Query('desc', pattern='^(asc|desc)$'),
status_filter: str = Query(None, regex='^(active|inactive)$'), status_filter: str = Query(None, pattern='^(active|inactive)$'),
role_filter: str = Query(None, regex='^(admin|user)$') role_filter: str = Query(None, pattern='^(admin|user)$')
): ):
"""Admin user management page""" """Admin user management page"""
auth_check = require_admin(request) auth_check = require_admin(request)
if auth_check: if auth_check:
......
...@@ -584,10 +584,14 @@ def test_dashboard_user_query_uses_pattern_constraints(): ...@@ -584,10 +584,14 @@ def test_dashboard_user_query_uses_pattern_constraints():
route = next(route for route in dashboard_settings.router.routes if route.endpoint is dashboard_settings.dashboard_users) route = next(route for route in dashboard_settings.router.routes if route.endpoint is dashboard_settings.dashboard_users)
query_params = {param.name: param for param in route.dependant.query_params} query_params = {param.name: param for param in route.dependant.query_params}
assert query_params["order_by"].field_info.json_schema_extra == {"pattern": "^(username|last_login|created_at|tier_name)$"} def pattern_for(param_name):
assert query_params["direction"].field_info.json_schema_extra == {"pattern": "^(asc|desc)$"} metadata = query_params[param_name].field_info.metadata
assert query_params["status_filter"].field_info.json_schema_extra == {"pattern": "^(active|inactive)$"} return next((item.pattern for item in metadata if hasattr(item, "pattern")), None)
assert query_params["role_filter"].field_info.json_schema_extra == {"pattern": "^(admin|user)$"}
assert pattern_for("order_by") == "^(username|last_login|created_at|tier_name)$"
assert pattern_for("direction") == "^(asc|desc)$"
assert pattern_for("status_filter") == "^(active|inactive)$"
assert pattern_for("role_filter") == "^(admin|user)$"
source = inspect.getsource(dashboard_settings.dashboard_users) source = inspect.getsource(dashboard_settings.dashboard_users)
assert "regex=" not in source assert "regex=" not in source
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment