diora-web/books
marwin 1426c69a73
All checks were successful
Build and push Docker image / build (push) Successful in 14s
Test / test (push) Successful in 15s
Accounts: re-encrypt all books on password change
The encryption key is PBKDF2-derived from the login password. Changing
the password without migrating the key would make all books undecryptable
on the next login.

- Add POST /books/<pk>/rekey/ endpoint to replace a book's ciphertexts
- Password change form is now JS-driven: before submitting to the server,
  derives the old key, verifies it matches localStorage, derives the new
  key, re-encrypts all books (data + meta) and their highlights/bookmarks,
  updates localStorage, then submits the Django form

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 16:37:41 +02:00
..
migrations Add anchor-based reading position tracking 2026-04-01 15:41:30 +02:00
__init__.py Add ebook reader features: highlights, bookmarks, search, settings, PDF paginated mode 2026-03-19 13:08:42 +01:00
admin.py Add ebook reader features: highlights, bookmarks, search, settings, PDF paginated mode 2026-03-19 13:08:42 +01:00
apps.py Add ebook reader features: highlights, bookmarks, search, settings, PDF paginated mode 2026-03-19 13:08:42 +01:00
models.py Add anchor-based reading position tracking 2026-04-01 15:41:30 +02:00
urls.py Accounts: re-encrypt all books on password change 2026-05-25 16:37:41 +02:00
views.py Accounts: re-encrypt all books on password change 2026-05-25 16:37:41 +02:00