fixes filtering issue
This commit is contained in:
@@ -44,6 +44,16 @@ namespace Umbraco.Web.WebApi.Filters
|
|||||||
FilterBasedOnPermissions(items, user, ApplicationContext.Current.Services.UserService);
|
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)
|
internal void FilterBasedOnPermissions(IList items, IUser user, IUserService userService)
|
||||||
{
|
{
|
||||||
var length = items.Count;
|
var length = items.Count;
|
||||||
|
|||||||
@@ -39,6 +39,16 @@ namespace Umbraco.Web.WebApi.Filters
|
|||||||
get { return true; }
|
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)
|
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
|
||||||
{
|
{
|
||||||
var user = UmbracoContext.Current.Security.CurrentUser;
|
var user = UmbracoContext.Current.Security.CurrentUser;
|
||||||
@@ -77,7 +87,7 @@ namespace Umbraco.Web.WebApi.Filters
|
|||||||
var toRemove = new List<dynamic>();
|
var toRemove = new List<dynamic>();
|
||||||
foreach (dynamic item in items)
|
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)
|
if (!hasPathAccess)
|
||||||
{
|
{
|
||||||
toRemove.Add(item);
|
toRemove.Add(item);
|
||||||
|
|||||||
Reference in New Issue
Block a user