Commit Graph

23 Commits

Author SHA1 Message Date
6cb3cf072a fix: security hardening — SameSite=Strict, Secure cookie flag, password min length, generic registration error, auth rate limiting 2026-05-04 21:38:23 +02:00
fe7f915302 fix: move rss_url after user lookup, extract RSS_FEED_LIMIT constant 2026-05-04 21:05:08 +02:00
c30b3a1ae2 feat: point RSS nav link to user feed when on profile page 2026-05-04 21:00:31 +02:00
cdc15d733d feat: add GET /users/{id}/feed.rss per-user RSS feed handler 2026-05-04 20:58:20 +02:00
549b0bbe09 feat: add rss_url to HtmlPageContext, use it in nav 2026-05-04 20:55:31 +02:00
72ce31ded2 feat: add title param to render_feed, use dynamic title in RSS adapter 2026-05-04 20:52:07 +02:00
f53a129331 feat: add user_id filter to GetDiaryQuery and get_diary use case 2026-05-04 20:49:31 +02:00
12818d41a4 fix: lower default page limit to 5 2026-05-04 20:11:55 +02:00
4dd1cd7fc5 fix: has_more overflow, magic constant, remove dead get_index handler 2026-05-04 19:15:42 +02:00
0b6ac2eb77 feat: wire activity feed, users list, and profile page handlers 2026-05-04 19:12:06 +02:00
7e7c1ee1f4 Refactor movie review logging and resolution strategies
- Introduced `MovieResolver` and associated strategies for resolving movie data based on external metadata ID, manual title, or manual entry.
- Updated `log_review` use case to utilize the new `MovieResolver` for fetching movie details.
- Simplified the `LogReviewData` structure and its conversion to `LogReviewCommand`.
- Enhanced error handling for date parsing in review forms and requests.
- Updated dependencies in `Cargo.toml` and `Cargo.lock` to include necessary crates for async operations.
- Added tests for new functionality in `movie_resolver.rs` to ensure correct behavior of resolution strategies.
2026-05-04 15:08:04 +02:00
39ac5a0c50 fix(presentation): restore user_id in get_new_review_page for nav bar 2026-05-04 14:34:46 +02:00
36f3a9c44b fix(presentation): pass None user_id for non-diary page contexts 2026-05-04 14:32:30 +02:00
7c704f39b3 feat(template): add user_id to HtmlPageContext and delete button to diary 2026-05-04 14:31:12 +02:00
977a8ed8fd feat(presentation): add POST /reviews/:id/delete handler and route 2026-05-04 14:27:43 +02:00
f74a36a16f feat(presentation): add DELETE /api/reviews/:id handler and route 2026-05-04 14:24:48 +02:00
6e50b64245 feat(database): remove unused SQL queries and update Cargo dependencies 2026-05-04 14:00:33 +02:00
5c0be8b2ca feat(handlers): add HTML handlers for login, logout, register, new review, diary index 2026-05-04 13:38:16 +02:00
7560ff8ac5 feat(extractors): add OptionalCookieUser and RequiredCookieUser 2026-05-04 13:34:31 +02:00
992a1a2674 feat(rss): implement RSS feed adapter and integrate with application state 2026-05-04 12:03:17 +02:00
1f8b24fec2 feat(auth): implement JWT authentication and user registration
- Added JWT authentication with token generation and validation.
- Introduced user registration functionality with email and password.
- Integrated Argon2 for password hashing.
- Created SQLite user repository for user data persistence.
- Updated application context to include user repository and configuration settings.
- Added environment variable support for JWT secret and registration allowance.
- Enhanced error handling for unauthorized access and validation errors.
- Updated presentation layer to handle login and registration requests.
2026-05-04 10:43:07 +02:00
0d7a0cc712 presentation wiring 2026-05-04 09:30:20 +02:00
d2c8886bb0 feat(presentation): add initial structure with dtos, errors, extractors, handlers, and routes modules 2026-05-04 02:11:33 +02:00