navidrome/persistence
Deluan 295900e6f7 feat: add multi-library support to tag repository system
Implemented comprehensive library filtering for tag repositories to support the multi-library feature. This change ensures that users only see tags from libraries they have access to, while admin users can see all tags.

Key changes:
- Enhanced TagRepository.Add() method to accept libraryID parameter for proper library association
- Updated baseTagRepository to implement library-aware queries with proper joins
- Added library_tag table integration for per-library tag statistics
- Implemented user permission-based filtering through user_library associations
- Added comprehensive test coverage for library filtering scenarios
- Updated UI data provider to include tag filtering by selected libraries
- Modified scanner to pass library ID when adding tags during folder processing

The implementation maintains backward compatibility while providing proper isolation between libraries for tag-based operations like genres and other metadata tags.
2025-07-16 18:10:15 -04:00
..
album_repository.go feat: add musicFolderId parameter support to Search2 and Search3 endpoints 2025-07-16 18:10:15 -04:00
album_repository_test.go feat(server): add Role filters to albums (#3829) 2025-03-14 21:43:52 -04:00
artist_repository.go feat: implement per-library artist statistics with automatic aggregation 2025-07-16 18:10:15 -04:00
artist_repository_test.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
collation_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
export_test.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
folder_repository.go feat(repository): apply library filtering in CountAll methods for albums, folders, and media files 2025-07-16 18:10:14 -04:00
genre_repository.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
genre_repository_test.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
helpers.go fix(scanner): optimize refresh (#4059) 2025-05-14 20:47:03 -04:00
helpers_test.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
library_repository.go fix: correct updated_at assignment in library repository 2025-07-16 18:10:15 -04:00
library_repository_test.go feat(library): enhance library validation and management with path checks and normalization - WIP 2025-07-16 18:10:14 -04:00
mediafile_repository.go feat: add musicFolderId parameter support to Search2 and Search3 endpoints 2025-07-16 18:10:15 -04:00
mediafile_repository_test.go feat: MBID search functionality for albums, artists and songs (#4286) 2025-06-30 17:11:54 -04:00
persistence.go refactor: rename chain package to run and update references 2025-06-14 17:19:06 -04:00
persistence_suite_test.go chore: remove commented-out genre repository code from persistence tests 2025-07-16 18:10:15 -04:00
persistence_test.go fix(server): play queue should not return empty entries for deleted tracks 2024-09-20 11:22:37 -04:00
player_repository.go fix(insights): fix issues and improve reports (#3558) 2024-12-18 20:37:35 -05:00
player_repository_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
playlist_repository.go feat(library): streamline library ID filtering in repositories and update resource filtering logic 2025-07-16 18:10:15 -04:00
playlist_repository_test.go feat(ui): add 'Show in Playlist' context menu (#4139) 2025-05-30 21:26:35 -04:00
playlist_track_repository.go feat(library): streamline library ID filtering in repositories and update resource filtering logic 2025-07-16 18:10:15 -04:00
playqueue_repository.go fix(server): ensure single record per user by reusing existing playqueue ID 2025-06-11 17:26:13 -04:00
playqueue_repository_test.go fix(server): ensure single record per user by reusing existing playqueue ID 2025-06-11 17:26:13 -04:00
property_repository.go Replace beego/orm with dbx (#2693) 2023-12-09 13:52:17 -05:00
property_repository_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
radio_repository.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
radio_repository_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
scrobble_buffer_repository.go fix(server): send artist mbids when scrobbling to ListenBrainz 2025-02-23 13:30:39 -05:00
scrobble_buffer_repository_test.go feat(plugins): experimental support for plugins (#3998) 2025-06-22 20:45:38 -04:00
share_repository.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
sql_annotations.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
sql_base_repository.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
sql_base_repository_test.go fix(subsonic): Sort songs by presence of lyrics for getLyrics (#4237) 2025-06-16 12:04:41 -04:00
sql_bookmarks.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
sql_bookmarks_test.go revert: separation of write and read DBs 2024-11-19 18:41:50 -05:00
sql_participations.go fix(server): send artist mbids when scrobbling to ListenBrainz 2025-02-23 13:30:39 -05:00
sql_restful.go feat: MBID search functionality for albums, artists and songs (#4286) 2025-06-30 17:11:54 -04:00
sql_restful_test.go feat: MBID search functionality for albums, artists and songs (#4286) 2025-06-30 17:11:54 -04:00
sql_search.go feat: MBID search functionality for albums, artists and songs (#4286) 2025-06-30 17:11:54 -04:00
sql_search_test.go feat(bfr): Big Refactor: new scanner, lots of new fields and tags, improvements and DB schema changes (#2709) 2025-02-19 20:35:17 -05:00
sql_tags.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
tag_library_filtering_test.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
tag_repository.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
tag_repository_test.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00
transcoding_repository.go fix(transcoding): restrict transcoding operations to admin users (#4096) 2025-05-21 22:19:23 -04:00
transcoding_repository_test.go fix(transcoding): restrict transcoding operations to admin users (#4096) 2025-05-21 22:19:23 -04:00
user_props_repository.go Replace beego/orm with dbx (#2693) 2023-12-09 13:52:17 -05:00
user_repository.go feat: add default library assignment for new users 2025-07-16 18:10:15 -04:00
user_repository_test.go feat: add multi-library support to tag repository system 2025-07-16 18:10:15 -04:00