fix: replace deprecated fastapi query regex constraints

parent 70701894
......@@ -756,10 +756,10 @@ async def dashboard_users(
page: int = Query(1, ge=1),
limit: int = Query(25, ge=1, le=100),
search: str = Query(None, max_length=100),
order_by: str = Query('created_at', regex='^(username|last_login|created_at|tier_name)$'),
direction: str = Query('desc', regex='^(asc|desc)$'),
status_filter: str = Query(None, regex='^(active|inactive)$'),
role_filter: str = Query(None, regex='^(admin|user)$')
order_by: str = Query('created_at', pattern='^(username|last_login|created_at|tier_name)$'),
direction: str = Query('desc', pattern='^(asc|desc)$'),
status_filter: str = Query(None, pattern='^(active|inactive)$'),
role_filter: str = Query(None, pattern='^(admin|user)$')
):
"""Admin user management page"""
auth_check = require_admin(request)
......
......@@ -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)
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)$"}
assert query_params["direction"].field_info.json_schema_extra == {"pattern": "^(asc|desc)$"}
assert query_params["status_filter"].field_info.json_schema_extra == {"pattern": "^(active|inactive)$"}
assert query_params["role_filter"].field_info.json_schema_extra == {"pattern": "^(admin|user)$"}
def pattern_for(param_name):
metadata = query_params[param_name].field_info.metadata
return next((item.pattern for item in metadata if hasattr(item, "pattern")), None)
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)
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