GET /history SELECTed latest estimates of ALL users -> cross-pilot leak. Adds trade_in_estimates.created_by (migration 083), populated from X-Authenticated-User on estimate creation. /history now: non-admin forced to own rows (legacy NULL rows excluded); admin sees all or ?account=<user>; 401 if header missing, 403 if user not in roles.yaml. _empty_estimate rows also tagged. tests/test_history_scope.py (5 cases) + estimator regression green. Closes #656 |
||
|---|---|---|
| .. | ||
| sql | ||