Commit Graph

17 Commits

Author SHA1 Message Date
neon 6769bf4b0f fix(auth): make account lockout recoverable and visible
The lockout was checked before the password was verified, so a correct password on a locked
account returned the same generic invalid-credentials error as a wrong one. Users had no way to
tell the two apart, and the natural response was to keep retrying a password that was already
right.

Completing a password reset did not clear the lock either, so the one recovery path the UI
advertises appeared to fail for up to fifteen minutes after a successful reset.

Verify the password first and report the lockout, with the remaining wait, only when the supplied
password was correct. Someone guessing wrong passwords still gets the generic failure, so account
existence is not leaked. Clear the lock whenever a password is reset or changed, and give admins
an explicit unlock action for the case where waiting is not acceptable.
2026-08-09 05:12:57 +00:00
neon 515f7b89e9 feat(client): redesign sidebar navigation, settings, and user management
Rework the app shell around a customizable sidebar: reorderable sections, sidebar zones, entity
popovers, and per-user preference persistence, backed by a dedicated browse counts endpoint so
entity totals stay cheap on large libraries.

Redesign the file naming settings with pattern fields, a token helper sheet, and a debounced live
preview. Rebuild the admin users table with server-side pagination, search, and filter DTOs, status
pills, confirmation dialogs, and magic link actions. Group notification preferences by category and
refine the account and privacy settings layouts.

Update theme tokens, icon references, and template event handler bindings across client features for
consistency, extend all locale catalogs, and add unit coverage for the new composables, components,
and server modules.
2026-07-28 16:12:36 +00:00
neon 56e0a554f3 feat(settings): allow users to disable achievements and gamification
Introduce user-specific settings to toggle achievements. Avoid evaluation
and awarding of achievements on the backend when disabled. Render a toggle
in the Account Settings interface on the frontend.

Closes #614
2026-07-10 04:24:26 +00:00
Chris Mansell 956a7a5e9a feat(users): add per-user tag/genre content restrictions (#83)
* feat(users): tag/genre content filters for per-user access control

Add granular per-user content filtering by tags and genres, allowing admins to set include/exclude filter rules that are enforced across all book-serving surfaces.

- Implement DB schema, repository, and SQL helpers for content filters

- Wire enforcement across core domains (Books, Collections, OPDS, Kobo sync)

- Add REST endpoints for managing filter rules

- Redesign UserFormDrawer to support configuring content restrictions

- Add read-only Restrictions tab in account settings and user list badges

- Add comprehensive unit tests and fix existing fixtures

Closes #68

* test(client): update account tab expectations for restrictions
2026-05-22 11:01:11 -06:00
neon 739d311e9e chore: sync dependency branch with main 2026-04-25 21:35:27 -06:00
neon cfc3672a6c refactor: rename book-bucket to book-dock and lens to smart-scope 2026-04-20 22:57:27 -06:00
neon 35594e849e feat: enhance OIDC flow with audit logs and improved error handling
- add audit events for OIDC login and user provisioning
- improve callback error messages and state validation
- add OIDC provider schema and initial migration
2026-04-13 14:44:30 -06:00
neon 00ecdc34cd test(users): add lifecycle E2E suite and harden admin contracts 2026-04-02 04:05:00 -06:00
neon 60f66d17af refactor(server): improve repository architecture and query structure 2026-03-31 02:23:42 -06:00
neon eb5d08ad24 feat: add account avatar management and tighten user email requirements 2026-03-23 04:06:26 -06:00
neon 7095bbc668 feat(library): improve creator with cron validation and assignable users 2026-03-22 16:21:40 -06:00
neon 652dcba69a feat: replace roles system with flat permissions and isSuperuser flag 2026-03-10 04:19:33 -06:00
neon 91dddc6740 test: add backend coverage and related service updates 2026-03-06 12:08:22 -06:00
neon 244d38afe8 feat(reader): add settings system with per-book delta and defaults 2026-01-16 02:00:38 -06:00
neon 477c68122f feat(auth): add OIDC/SSO support with RP-initiated logout and settings 2026-01-13 08:23:05 -06:00
neon 45f7c73ecb feat: add auth, RBAC, admin panel, and JWT-protected routes 2026-01-12 15:05:39 -06:00
neon b4ee0cb90c feat(metadata): add cover extraction for epub, mobi, cbz, and pdf 2025-12-22 14:37:28 -06:00