fixes filtering issue

This commit is contained in:
Shannon
2013-11-21 10:39:10 +11:00
parent 2ffc64b965
commit 22c615a641
2 changed files with 21 additions and 1 deletions

View File

@@ -44,6 +44,16 @@ namespace Umbraco.Web.WebApi.Filters
FilterBasedOnPermissions(items, user, ApplicationContext.Current.Services.UserService);
}
protected override int GetUserStartNode(IUser user)
{
return user.StartContentId;
}
protected override int RecycleBinId
{
get { return Constants.System.RecycleBinContent; }
}
internal void FilterBasedOnPermissions(IList items, IUser user, IUserService userService)
{
var length = items.Count;

View File

@@ -39,6 +39,16 @@ namespace Umbraco.Web.WebApi.Filters
get { return true; }
}
protected virtual int GetUserStartNode(IUser user)
{
return user.StartMediaId;
}
protected virtual int RecycleBinId
{
get { return Constants.System.RecycleBinMedia; }
}
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
var user = UmbracoContext.Current.Security.CurrentUser;
@@ -77,7 +87,7 @@ namespace Umbraco.Web.WebApi.Filters
var toRemove = new List<dynamic>();
foreach (dynamic item in items)
{
var hasPathAccess = (item != null && UserExtensions.HasPathAccess(item.Path, user.StartMediaId, Constants.System.RecycleBinMedia));
var hasPathAccess = (item != null && UserExtensions.HasPathAccess(item.Path, GetUserStartNode(user), RecycleBinId));
if (!hasPathAccess)
{
toRemove.Add(item);