kolaente
cda6d88330
feat(user): lock account after 10 failed password attempts
...
Mirrors the TOTP lockout: issue a password reset token, send a mail, set
the account to locked and revoke its sessions. Counts every wrong password
checked by CheckUserCredentials, including the password and email change
re-auth prompts, so a stolen session can no longer guess the password
indefinitely.
The 3-attempt warning mail no longer resets the counter, otherwise it
could never reach the lockout threshold.
2026-11-03 10:41:13 +01:00
..
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-07-18 10:00:37 +02:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-08-20 11:58:06 +02:00
2026-10-19 16:05:12 +02:00
2026-10-20 23:05:30 +02:00
2026-10-20 15:13:02 +02:00
2026-09-15 11:41:34 +02:00
2026-10-20 15:13:02 +02:00
2026-11-03 09:12:02 +01:00
2026-08-31 09:33:47 +02:00
2026-10-01 03:18:23 +02:00
2026-08-19 13:01:59 +02:00
2026-10-15 21:01:39 +00:00
2026-08-20 11:58:06 +02:00
2026-10-20 23:05:30 +02:00
2026-09-29 22:54:20 +02:00
2026-10-20 15:13:02 +02:00
2026-06-03 19:58:27 +00:00
2026-10-20 23:05:30 +02:00
2026-06-17 11:31:50 +00:00
2026-06-11 20:07:43 +00:00
2026-10-20 23:05:30 +02:00
2026-10-30 22:57:12 +01:00
2026-10-20 15:13:02 +02:00
2026-10-16 15:49:28 +02:00
2026-10-01 17:29:11 +02:00
2026-07-28 19:26:15 +02:00
2026-10-20 15:13:02 +02:00
2026-10-28 23:02:31 +01:00
2026-09-12 18:21:35 +02:00
2026-09-15 11:41:34 +02:00
2026-09-15 11:41:34 +02:00
2026-08-30 17:04:35 +02:00
2026-10-02 19:08:02 +02:00
2026-09-15 16:59:37 +02:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-08-20 08:45:42 +02:00
2026-06-17 20:35:28 +00:00
2026-07-29 07:58:17 +00:00
2026-08-29 21:22:43 +00:00
2026-09-21 18:23:31 +02:00
2026-08-28 23:49:27 +02:00
2026-08-31 18:37:03 +02:00
2026-08-29 22:51:44 +02:00
2026-06-07 10:37:59 +00:00
2026-07-19 18:59:34 +02:00
2026-07-27 22:31:06 +00:00
2026-06-09 21:34:22 +00:00
2026-09-15 11:41:34 +02:00
2026-06-07 10:40:20 +00:00
2026-10-20 15:13:02 +02:00
2026-08-29 23:42:41 +02:00
2026-09-15 11:41:34 +02:00
2026-06-06 19:06:12 +00:00
2026-10-20 13:34:51 +02:00
2026-10-20 15:13:02 +02:00
2026-10-13 11:54:08 +02:00
2026-06-11 18:31:03 +00:00
2026-06-05 07:43:38 +00:00
2026-10-13 11:54:08 +02:00
2026-07-29 22:28:31 +02:00
2026-06-10 11:55:51 +02:00
2026-06-09 20:42:00 +00:00
2026-10-13 11:54:08 +02:00
2026-06-09 19:50:58 +00:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-06-17 12:13:50 +00:00
2026-10-22 11:14:14 +02:00
2026-07-19 18:59:34 +02:00
2026-08-31 20:10:49 +02:00
2026-08-31 18:37:03 +02:00
2026-06-11 20:07:43 +00:00
2026-10-02 09:47:32 +02:00
2026-10-20 15:13:02 +02:00
2026-06-10 19:12:41 +00:00
2026-06-11 20:07:43 +00:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-11-02 11:58:07 +01:00
2026-10-20 15:13:02 +02:00
2026-07-19 18:59:34 +02:00
2026-10-02 19:08:02 +02:00
2026-06-17 19:43:41 +00:00
2026-10-19 13:25:00 +02:00
2026-09-15 11:41:34 +02:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-09-15 11:41:34 +02:00
2026-10-20 15:13:02 +02:00
2026-10-02 19:08:02 +02:00
2026-07-26 09:39:41 +00:00
2026-10-20 15:13:02 +02:00
2026-11-03 10:41:13 +01:00
2026-08-18 11:30:03 +02:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-09-29 22:54:20 +02:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-09-04 10:32:56 +02:00
2026-10-13 23:32:15 +02:00
2026-10-01 17:34:38 +02:00
2026-09-18 15:59:07 +02:00
2026-10-02 19:08:02 +02:00
2026-08-18 22:03:38 +02:00
2026-10-20 15:13:02 +02:00
2026-10-20 15:13:02 +02:00
2026-07-28 17:12:18 +02:00