diff --git a/src/Umbraco.Core/Models/UserExtensions.cs b/src/Umbraco.Core/Models/UserExtensions.cs
index a79aec5026..30b80f253c 100644
--- a/src/Umbraco.Core/Models/UserExtensions.cs
+++ b/src/Umbraco.Core/Models/UserExtensions.cs
@@ -25,7 +25,7 @@ namespace Umbraco.Core.Models
/// Returns all of the user's assigned start node ids based on ids assigned directly to the IUser object and it's groups
///
///
- public static IEnumerable GetCombinedMediaContentIds(this IUser user)
+ public static IEnumerable GetCombinedStartMediaIds(this IUser user)
{
return user.StartMediaIds.Concat(user.Groups.Select(x => x.StartMediaId)).Distinct();
}
@@ -136,10 +136,10 @@ namespace Umbraco.Core.Models
if (content == null) throw new ArgumentNullException("content");
return HasPathAccess(content.Path, user.GetCombinedStartContentIds().ToArray(), Constants.System.RecycleBinContent);
}
-
+
internal static bool HasPathAccess(string path, int[] startNodeIds, int recycleBinId)
{
- Mandate.ParameterNotNullOrEmpty(path, "path");
+ if (string.IsNullOrWhiteSpace(path)) throw new ArgumentException("Value cannot be null or whitespace.", "path");
var formattedPath = "," + path + ",";
var formattedRecycleBinId = "," + recycleBinId.ToInvariantString() + ",";
@@ -178,7 +178,7 @@ namespace Umbraco.Core.Models
{
if (user == null) throw new ArgumentNullException("user");
if (media == null) throw new ArgumentNullException("media");
- return HasPathAccess(media.Path, user.GetCombinedMediaContentIds().ToArray(), Constants.System.RecycleBinMedia);
+ return HasPathAccess(media.Path, user.GetCombinedStartMediaIds().ToArray(), Constants.System.RecycleBinMedia);
}
///
diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs
index 6682b22389..6cf0282438 100644
--- a/src/Umbraco.Web/Editors/ContentController.cs
+++ b/src/Umbraco.Web/Editors/ContentController.cs
@@ -802,12 +802,12 @@ namespace Umbraco.Web.Editors
var hasPathAccess = (nodeId == Constants.System.Root)
? UserExtensions.HasPathAccess(
Constants.System.Root.ToInvariantString(),
- user.StartContentIds,
+ user.GetCombinedStartContentIds().ToArray(),
Constants.System.RecycleBinContent)
: (nodeId == Constants.System.RecycleBinContent)
? UserExtensions.HasPathAccess(
Constants.System.RecycleBinContent.ToInvariantString(),
- user.StartContentIds,
+ user.GetCombinedStartContentIds().ToArray(),
Constants.System.RecycleBinContent)
: user.HasPathAccess(contentItem);
diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs
index 77be2e2c37..9c96a865ca 100644
--- a/src/Umbraco.Web/Editors/MediaController.cs
+++ b/src/Umbraco.Web/Editors/MediaController.cs
@@ -887,12 +887,12 @@ namespace Umbraco.Web.Editors
var hasPathAccess = (nodeId == Constants.System.Root)
? UserExtensions.HasPathAccess(
Constants.System.Root.ToInvariantString(),
- user.StartMediaIds,
+ user.GetCombinedStartMediaIds().ToArray(),
Constants.System.RecycleBinMedia)
: (nodeId == Constants.System.RecycleBinMedia)
? UserExtensions.HasPathAccess(
Constants.System.RecycleBinMedia.ToInvariantString(),
- user.StartMediaIds,
+ user.GetCombinedStartMediaIds().ToArray(),
Constants.System.RecycleBinMedia)
: user.HasPathAccess(media);
diff --git a/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs b/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs
index 72cea5c2d0..6e8c411db7 100644
--- a/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs
+++ b/src/Umbraco.Web/WebApi/Filters/FilterAllowedOutgoingMediaAttribute.cs
@@ -41,7 +41,7 @@ namespace Umbraco.Web.WebApi.Filters
protected virtual int[] GetUserStartNodes(IUser user)
{
- return user.StartMediaIds;
+ return user.GetCombinedStartMediaIds().ToArray();
}
protected virtual int RecycleBinId