aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Server.Implementations/Library/LibraryManager.cs')
-rw-r--r--MediaBrowser.Server.Implementations/Library/LibraryManager.cs42
1 files changed, 24 insertions, 18 deletions
diff --git a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
index 70d28547c..0ba7dea53 100644
--- a/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/LibraryManager.cs
@@ -1272,6 +1272,11 @@ namespace MediaBrowser.Server.Implementations.Library
public QueryResult<BaseItem> GetItems(InternalItemsQuery query)
{
+ if (query.User != null)
+ {
+ AddUserToQuery(query, query.User);
+ }
+
var result = ItemRepository.GetItemIdsList(query);
var items = result.Select(GetItemById).Where(i => i != null).ToArray();
@@ -1284,11 +1289,21 @@ namespace MediaBrowser.Server.Implementations.Library
public QueryResult<BaseItem> QueryItems(InternalItemsQuery query)
{
+ if (query.User != null)
+ {
+ AddUserToQuery(query, query.User);
+ }
+
return ItemRepository.GetItems(query);
}
public List<Guid> GetItemIds(InternalItemsQuery query)
{
+ if (query.User != null)
+ {
+ AddUserToQuery(query, query.User);
+ }
+
return ItemRepository.GetItemIdsList(query);
}
@@ -1298,14 +1313,7 @@ namespace MediaBrowser.Server.Implementations.Library
query.AncestorIds = parents.SelectMany(i => i.GetIdsForAncestorQuery()).Select(i => i.ToString("N")).ToArray();
- if (user != null)
- {
- AddUserToQuery(query, user);
- }
-
- var items = GetItemIds(query).Select(GetItemById);
-
- return items;
+ return GetItemIds(query).Select(GetItemById);
}
public QueryResult<BaseItem> GetItemsResult(InternalItemsQuery query, IEnumerable<string> parentIds)
@@ -1314,26 +1322,24 @@ namespace MediaBrowser.Server.Implementations.Library
query.AncestorIds = parents.SelectMany(i => i.GetIdsForAncestorQuery()).Select(i => i.ToString("N")).ToArray();
- if (query.User != null)
- {
- AddUserToQuery(query, query.User);
- }
-
return GetItems(query);
}
private void AddUserToQuery(InternalItemsQuery query, User user)
{
- if (query.AncestorIds.Length == 0)
+ if (query.AncestorIds.Length == 0 && !query.ParentId.HasValue && query.ChannelIds.Length == 0)
{
- // Need to filter on user folders
+ // TODO: Need to filter on user folders
}
- query.MaxParentalRating = user.Policy.MaxParentalRating;
+ // TODO: handle blocking by tags
- // handle blocking by tags
+ query.MaxParentalRating = user.Policy.MaxParentalRating;
- // handle unrated filter
+ if (user.Policy.MaxParentalRating.HasValue)
+ {
+ query.BlockUnratedItems = user.Policy.BlockUnratedItems;
+ }
}
/// <summary>