diff options
Diffstat (limited to 'MediaBrowser.Api/HttpHandlers/ItemHandler.cs')
| -rw-r--r-- | MediaBrowser.Api/HttpHandlers/ItemHandler.cs | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/MediaBrowser.Api/HttpHandlers/ItemHandler.cs b/MediaBrowser.Api/HttpHandlers/ItemHandler.cs index 7b4b02b63..dd508d103 100644 --- a/MediaBrowser.Api/HttpHandlers/ItemHandler.cs +++ b/MediaBrowser.Api/HttpHandlers/ItemHandler.cs @@ -1,7 +1,9 @@ -using MediaBrowser.Common.Net;
+using System;
+using MediaBrowser.Api.Model;
+using MediaBrowser.Common.Net;
using MediaBrowser.Common.Net.Handlers;
+using MediaBrowser.Controller;
using MediaBrowser.Model.Entities;
-using MediaBrowser.Common.Json;
namespace MediaBrowser.Api.HttpHandlers
{
@@ -16,26 +18,31 @@ namespace MediaBrowser.Api.HttpHandlers {
get
{
- return GetSerializationObject(ItemToSerialize, true);
+ Guid userId = Guid.Parse(QueryString["userid"]);
+
+ return GetSerializationObject(ItemToSerialize, true, userId);
}
}
- public static object GetSerializationObject(BaseItem item, bool includeChildren)
+ public static object GetSerializationObject(BaseItem item, bool includeChildren, Guid userId)
{
- if (includeChildren && item.IsFolder)
+ BaseItemInfo wrapper = new BaseItemInfo()
{
- Folder folder = item as Folder;
+ Item = item,
+ UserItemData = Kernel.Instance.GetUserItemData(userId, item.Id)
+ };
- return new
- {
- BaseItem = item,
- Children = folder.Children
- };
- }
- else
+ if (includeChildren)
{
- return item;
+ var folder = item as Folder;
+
+ if (folder != null)
+ {
+ wrapper.Children = Kernel.Instance.GetParentalAllowedChildren(folder, userId);
+ }
}
+
+ return wrapper;
}
protected virtual BaseItem ItemToSerialize
|
