From 72006fab4c9c8f5e0e5230932097d96397f53e7b Mon Sep 17 00:00:00 2001 From: Deluan Date: Wed, 16 Jul 2025 18:49:25 -0400 Subject: [PATCH] refactor: remove unused library access functions and related tests Signed-off-by: Deluan --- core/auth/auth.go | 65 ------------------------------------------- model/user.go | 19 ------------- model/user_test.go | 69 ---------------------------------------------- 3 files changed, 153 deletions(-) diff --git a/core/auth/auth.go b/core/auth/auth.go index 3a8e5de52..fd2b670a4 100644 --- a/core/auth/auth.go +++ b/core/auth/auth.go @@ -145,68 +145,3 @@ func getEncKey() []byte { sum := sha256.Sum256([]byte(key)) return sum[:] } - -// Library-based permission helpers - -// HasLibraryAccess checks if a user has access to a specific library -func HasLibraryAccess(ctx context.Context, ds model.DataStore, userID string, libraryID int) bool { - user, ok := request.UserFrom(ctx) - if !ok { - return false - } - - // Admin users have access to all libraries - if user.IsAdmin { - return true - } - - // Check if user has explicit access to this library - libraries, err := ds.User(ctx).GetUserLibraries(userID) - if err != nil { - log.Error(ctx, "Error checking library access", "userID", userID, "libraryID", libraryID, err) - return false - } - - for _, lib := range libraries { - if lib.ID == libraryID { - return true - } - } - - return false -} - -// GetUserLibraryIDs returns a list of library IDs the user has access to -func GetUserLibraryIDs(ctx context.Context, ds model.DataStore, userID string) []int { - user, ok := request.UserFrom(ctx) - if !ok { - return []int{} - } - - // Admin users have access to all libraries - if user.IsAdmin { - libraries, err := ds.Library(ctx).GetAll() - if err != nil { - log.Error(ctx, "Error getting all libraries for admin", "userID", userID, err) - return []int{} - } - var ids []int - for _, lib := range libraries { - ids = append(ids, lib.ID) - } - return ids - } - - // Get user's accessible libraries - libraries, err := ds.User(ctx).GetUserLibraries(userID) - if err != nil { - log.Error(ctx, "Error getting user libraries", "userID", userID, err) - return []int{} - } - - var ids []int - for _, lib := range libraries { - ids = append(ids, lib.ID) - } - return ids -} diff --git a/model/user.go b/model/user.go index cf83399cf..aabedc096 100644 --- a/model/user.go +++ b/model/user.go @@ -39,25 +39,6 @@ func (u User) HasLibraryAccess(libraryID int) bool { return false } -// AccessibleLibraryIDs returns a slice of library IDs that the user has access to -func (u User) AccessibleLibraryIDs() []int { - return u.Libraries.IDs() -} - -func (u User) FilteredLibraries(libraryIds []int) Libraries { - libMap := make(map[int]Library, len(u.Libraries)) - for _, lib := range u.Libraries { - libMap[lib.ID] = lib - } - var filtered Libraries - for _, id := range libraryIds { - if lib, ok := libMap[id]; ok { - filtered = append(filtered, lib) - } - } - return filtered -} - type Users []User type UserRepository interface { diff --git a/model/user_test.go b/model/user_test.go index 5c7c356c8..ab66a29a9 100644 --- a/model/user_test.go +++ b/model/user_test.go @@ -80,73 +80,4 @@ var _ = Describe("User", func() { }) }) }) - - Describe("FilteredLibraries", func() { - It("returns only libraries that match the filter", func() { - filtered := user.FilteredLibraries([]int{1, 3}) - expected := model.Libraries{ - {ID: 1, Name: "Rock Library", Path: "/music/rock"}, - {ID: 3, Name: "Classical Library", Path: "/music/classical"}, - } - Expect(filtered).To(Equal(expected)) - }) - - It("returns single library when filter contains one matching ID", func() { - filtered := user.FilteredLibraries([]int{2}) - expected := model.Libraries{ - {ID: 2, Name: "Jazz Library", Path: "/music/jazz"}, - } - Expect(filtered).To(Equal(expected)) - }) - - It("returns nil slice when filter has no matching IDs", func() { - filtered := user.FilteredLibraries([]int{99, 100}) - Expect(filtered).To(BeNil()) - }) - - It("returns nil slice when filter is empty", func() { - filtered := user.FilteredLibraries([]int{}) - Expect(filtered).To(BeNil()) - }) - - It("returns nil slice when filter is nil", func() { - filtered := user.FilteredLibraries(nil) - Expect(filtered).To(BeNil()) - }) - - It("returns nil slice when user has no libraries", func() { - user.Libraries = nil - filtered := user.FilteredLibraries([]int{1, 2, 3}) - Expect(filtered).To(BeNil()) - }) - - It("returns nil slice when user has empty libraries", func() { - user.Libraries = model.Libraries{} - filtered := user.FilteredLibraries([]int{1, 2, 3}) - Expect(filtered).To(BeNil()) - }) - - It("handles partial matches correctly", func() { - filtered := user.FilteredLibraries([]int{1, 99, 2, 100}) - expected := model.Libraries{ - {ID: 1, Name: "Rock Library", Path: "/music/rock"}, - {ID: 2, Name: "Jazz Library", Path: "/music/jazz"}, - } - Expect(filtered).To(Equal(expected)) - }) - }) - - Describe("AccessibleLibraryIDs", func() { - It("returns all library IDs when user has libraries", func() { - ids := user.AccessibleLibraryIDs() - expected := []int{1, 2, 3} - Expect(ids).To(Equal(expected)) - }) - - It("returns nil when user has no libraries", func() { - user.Libraries = nil - ids := user.AccessibleLibraryIDs() - Expect(ids).To(BeEmpty()) - }) - }) })