Karl Jussila
ee72d71872
fix(auth): centralize password and username validation constants ( #4120 )
...
Added PASSWORD_MIN_LENGTH and RESERVED_USERNAMES to src/constants.py as the
single source of truth. Previously PASSWORD_MIN_LENGTH was hardcoded as 8 in
four route handlers and all three JS validation paths; RESERVED_USERNAMES was
an inline frozenset duplicated in core/auth.py, routes/assistant_routes.py,
routes/research_routes.py, and src/task_scheduler.py.
Added GET /api/auth/policy (unauthenticated) so the frontend reads the real
values from the server instead of hardcoding them in JS.
Added missing empty-username guard to /setup and admin POST /users. Both
returned a misleading 500/409 on whitespace-only input. /signup already had the
check; this makes all three consistent.
2026-06-16 09:52:15 +02:00
..
2026-06-15 15:30:25 +09:00
2026-06-03 00:30:03 +09:00
2026-06-15 19:21:39 +09:00
2026-06-03 13:34:25 +09:00
2026-06-04 20:47:47 +02:00
2026-06-03 14:17:02 +09:00
2026-06-04 03:05:37 +01:00
2026-06-15 21:20:15 +09:00
2026-06-03 08:57:47 +09:00
2026-06-01 22:04:00 +02:00
2026-06-16 09:52:15 +02:00
2026-06-02 12:42:15 +09:00
2026-06-15 21:20:15 +09:00
2026-06-03 14:16:55 +09:00
2026-06-15 21:20:15 +09:00
2026-06-15 15:02:48 +09:00
2026-06-15 20:47:51 +09:00
2026-06-05 14:53:33 +02:00
2026-05-31 23:58:26 +09:00
2026-06-08 13:06:05 +02:00
2026-06-14 22:47:26 +09:00
2026-06-15 21:20:15 +09:00
2026-06-15 21:20:15 +09:00
2026-06-15 21:20:15 +09:00
2026-06-09 09:46:19 +09:00
2026-06-03 13:23:35 +09:00
2026-06-15 21:20:15 +09:00
2026-06-09 09:46:19 +09:00
2026-06-16 03:46:32 +01:00
2026-06-15 17:02:58 +01:00
2026-06-09 09:46:19 +09:00
2026-05-31 23:58:26 +09:00
2026-06-15 20:47:51 +09:00
2026-06-15 20:47:51 +09:00
2026-05-31 23:58:26 +09:00
2026-06-05 02:28:42 +02:00
2026-06-01 14:23:22 -04:00
2026-06-04 14:02:52 +01:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-04 20:49:37 +02:00
2026-06-02 23:31:09 +09:00
2026-06-02 11:12:54 +09:00
2026-06-03 13:29:21 +09:00
2026-06-09 09:46:19 +09:00
2026-06-15 20:47:51 +09:00
2026-06-04 08:27:26 +09:00
2026-06-15 21:20:15 +09:00
2026-06-09 09:46:19 +09:00
2026-06-09 09:46:19 +09:00
2026-06-03 14:16:52 +09:00
2026-06-03 13:23:21 +09:00
2026-06-15 11:55:46 +02:00
2026-06-02 11:29:29 +09:00
2026-06-02 11:12:54 +09:00
2026-06-03 04:09:28 +09:00
2026-06-08 10:19:18 +02:00
2026-06-15 21:20:15 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-01 16:53:46 +02:00
2026-06-10 22:39:23 +09:00
2026-06-16 09:52:15 +02:00
2026-05-31 23:58:26 +09:00
2026-06-05 13:17:43 +02:00
2026-06-15 21:20:15 +09:00
2026-06-08 10:19:18 +02:00
2026-06-15 15:39:44 +09:00
2026-05-31 23:58:26 +09:00
2026-06-11 18:17:54 +02:00
2026-06-06 04:08:54 -06:00
2026-06-06 04:08:54 -06:00
2026-06-10 23:36:18 +09:00
2026-06-03 00:30:03 +09:00
2026-06-15 12:36:34 +02:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-06-03 23:03:58 +09:00
2026-05-31 23:58:26 +09:00
2026-06-15 16:10:40 +09:00
2026-06-01 19:49:23 +02:00
2026-06-11 18:17:54 +02:00