Fix back-office identity

This commit is contained in:
Stephan
2017-07-27 12:37:21 +02:00
parent 4569a52806
commit 2d5f56cbff
2 changed files with 19 additions and 4 deletions

View File

@@ -132,7 +132,14 @@ namespace Umbraco.Core.Models.Identity
/// </summary>
public int[] AllStartContentIds
{
get { return _allStartContentIds ?? (_allStartContentIds = StartContentIds.Concat(Groups.Where(x => x.StartContentId.HasValue).Select(x => x.StartContentId.Value)).Distinct().ToArray()); }
get
{
if (_allStartContentIds != null) return _allStartContentIds;
var gsn = Groups.Where(x => x.StartContentId.HasValue).Select(x => x.StartContentId.Value).Distinct().ToArray();
var usn = StartContentIds;
return _allStartContentIds = UserExtensions.CombineStartNodes(UmbracoObjectTypes.Document, gsn, usn, ApplicationContext.Current.Services.EntityService);
}
}
/// <summary>
@@ -140,7 +147,14 @@ namespace Umbraco.Core.Models.Identity
/// </summary>
public int[] AllStartMediaIds
{
get { return _allStartMediaIds ?? (_allStartMediaIds = StartMediaIds.Concat(Groups.Where(x => x.StartMediaId.HasValue).Select(x => x.StartMediaId.Value)).Distinct().ToArray()); }
get
{
if (_allStartMediaIds != null) return _allStartMediaIds;
var gsn = Groups.Where(x => x.StartMediaId.HasValue).Select(x => x.StartMediaId.Value).Distinct().ToArray();
var usn = StartMediaIds;
return _allStartMediaIds = UserExtensions.CombineStartNodes(UmbracoObjectTypes.Document, gsn, usn, ApplicationContext.Current.Services.EntityService);
}
}
}
}

View File

@@ -3,6 +3,7 @@ using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNet.Identity;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Identity;
namespace Umbraco.Core.Security
@@ -39,8 +40,8 @@ namespace Umbraco.Core.Security
//For now, I'll fix this by using the user.Groups instead
//Roles = user.Roles.Select(x => x.RoleId).ToArray(),
Roles = user.Groups.Select(x => x.Alias).ToArray(),
StartContentNodes = user.StartContentIds,
StartMediaNodes = user.StartMediaIds,
StartContentNodes = user.AllStartContentIds,
StartMediaNodes = user.AllStartMediaIds,
SessionId = user.SecurityStamp
});