navidrome/server/jellyfin
Deluan fbce1d3500 feat(jellyfin): full multi-library support with per-user access scoping
Replace the single hardcoded "music" UserView with one CollectionFolder
view per library the user can access, and scope every /Items browse
query (albums, songs, artists, /Latest) to those libraries via
server/filter's ApplyLibraryFilter/ApplyArtistLibraryFilter.

ParentId is now disambiguated: a numeric value the user has access to is
treated as a library scope (browsing a UserView), otherwise it falls
through as an entity id (artist/album), which safely matches nothing
rather than leaking another library's content. getItem now 404s when
fetching an album or song outside the user's accessible libraries;
artists are skipped (they can span multiple libraries) with a TODO.

Genres remain unscoped since they're global tags, not per-library
entities.
2026-07-05 15:53:02 -04:00
..
dto refactor(jellyfin): use new(x) builtin instead of intPtr helper 2026-07-05 15:03:23 -04:00
api.go feat(jellyfin): Items query engine, item detail, and latest 2026-07-05 15:27:53 -04:00
api_test.go feat(jellyfin): wire and mount the router behind Jellyfin.Enabled 2026-07-05 14:18:39 -04:00
auth.go fix(jellyfin): reject empty login password, wire ServerName, add negative auth tests 2026-07-05 15:01:02 -04:00
auth_test.go fix(jellyfin): reject empty login password, wire ServerName, add negative auth tests 2026-07-05 15:01:02 -04:00
items.go feat(jellyfin): full multi-library support with per-user access scoping 2026-07-05 15:53:02 -04:00
items_test.go feat(jellyfin): full multi-library support with per-user access scoping 2026-07-05 15:53:02 -04:00
jellyfin_suite_test.go feat(jellyfin): package skeleton with System handshake endpoints 2026-07-05 14:03:40 -04:00
library.go feat(jellyfin): full multi-library support with per-user access scoping 2026-07-05 15:53:02 -04:00
middlewares.go feat(jellyfin): authentication middleware and AuthenticateByName login 2026-07-05 14:51:46 -04:00
middlewares_test.go fix(jellyfin): reject empty login password, wire ServerName, add negative auth tests 2026-07-05 15:01:02 -04:00
system.go feat(jellyfin): advertise Jellyfin-compatible version, brand ServerName with Navidrome version 2026-07-05 14:38:43 -04:00
system_test.go feat(jellyfin): advertise Jellyfin-compatible version, brand ServerName with Navidrome version 2026-07-05 14:38:43 -04:00
users.go feat(jellyfin): full multi-library support with per-user access scoping 2026-07-05 15:53:02 -04:00
users_test.go feat(jellyfin): full multi-library support with per-user access scoping 2026-07-05 15:53:02 -04:00