You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Captures every /auth/login attempt in a login_event table (SQLite schema + PG migration 013): staff_id (or null for an unknown user), username tried, outcome (success/failed/ locked), IP, and user-agent — best-effort, never breaks login. New owner 'Login history' page (Admin): who signed in / failed, when, from which IP + parsed device, outcome filter, paginated. login() now returns mustChangePassword; an invited user on their default password is sent to Profile to change it on sign-in. typecheck + auth/employee tests green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
2 days ago | |
|---|---|---|
| .. | ||
| components | 4 days ago | |
| pages | 2 days ago | |
| Layout.tsx | 3 days ago | |
| Login.tsx | 2 days ago | |
| api.ts | 2 days ago | |
| app.css | 2 days ago | |
| main.tsx | 2 days ago | |
| nav.ts | 2 days ago | |
| pulse.ts | 5 days ago | |
| statement.ts | 3 days ago | |
| vite-env.d.ts | 4 days ago | |