U4-8906 - optimize member perfs
This commit is contained in:
@@ -183,7 +183,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
var url = urlHelper.GetUmbracoApiService<MemberTreeController>(controller => controller.GetTreeNode(display.Key.ToString("N"), null));
|
||||
display.TreeNodeUrl = url;
|
||||
}
|
||||
|
||||
|
||||
var genericProperties = new List<ContentPropertyDisplay>
|
||||
{
|
||||
new ContentPropertyDisplay
|
||||
@@ -234,7 +234,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
|
||||
|
||||
TabsAndPropertiesResolver.MapGenericProperties(member, display, localizedText, genericProperties);
|
||||
|
||||
|
||||
//check if there's an approval field
|
||||
var provider = membersProvider as global::umbraco.providers.members.UmbracoMembershipProvider;
|
||||
if (member.HasIdentity == false && provider != null)
|
||||
@@ -258,7 +258,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
/// <returns></returns>
|
||||
/// <remarks>
|
||||
/// If the membership provider installed is the umbraco membership provider, then we will allow changing the username, however if
|
||||
/// the membership provider is a custom one, we cannot allow chaning the username because MembershipProvider's do not actually natively
|
||||
/// the membership provider is a custom one, we cannot allow chaning the username because MembershipProvider's do not actually natively
|
||||
/// allow that.
|
||||
/// </remarks>
|
||||
internal static ContentPropertyDisplay GetLoginProperty(IMemberService memberService, IMember member, MemberDisplay display, ILocalizedTextService localizedText)
|
||||
@@ -267,11 +267,11 @@ namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
Alias = string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix),
|
||||
Label = localizedText.Localize("login"),
|
||||
Value = display.Username
|
||||
Value = display.Username
|
||||
};
|
||||
|
||||
var scenario = memberService.GetMembershipScenario();
|
||||
|
||||
|
||||
//only allow editing if this is a new member, or if the membership provider is the umbraco one
|
||||
if (member.HasIdentity == false || scenario == MembershipScenario.NativeUmbraco)
|
||||
{
|
||||
@@ -287,18 +287,14 @@ namespace Umbraco.Web.Models.Mapping
|
||||
|
||||
internal static IDictionary<string, bool> GetMemberGroupValue(string username)
|
||||
{
|
||||
var userRoles = username.IsNullOrWhiteSpace() ? null : Roles.GetRolesForUser(username);
|
||||
var result = new Dictionary<string, bool>();
|
||||
foreach (var role in Roles.GetAllRoles().Distinct())
|
||||
{
|
||||
// if a role starts with __umbracoRole we won't show it as it's an internal role used for public access
|
||||
if (role.StartsWith(Constants.Conventions.Member.InternalRolePrefix) == false)
|
||||
{
|
||||
result.Add(role, false);
|
||||
if (username.IsNullOrWhiteSpace()) continue;
|
||||
if (Roles.IsUserInRole(username, role))
|
||||
{
|
||||
result[role] = true;
|
||||
}
|
||||
result.Add(role, userRoles != null && userRoles.Contains(role));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
@@ -318,7 +314,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
|
||||
//remove all membership properties, these values are set with the membership provider.
|
||||
var exclude = defaultProps.Select(x => x.Value.Alias).ToArray();
|
||||
|
||||
|
||||
return source.Properties
|
||||
.Where(x => exclude.Contains(x.Alias) == false)
|
||||
.Select(Mapper.Map<Property, ContentPropertyDto>);
|
||||
@@ -331,7 +327,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This also ensures that the IsLocked out property is readonly when the member is not locked out - this is because
|
||||
/// an admin cannot actually set isLockedOut = true, they can only unlock.
|
||||
/// an admin cannot actually set isLockedOut = true, they can only unlock.
|
||||
/// </remarks>
|
||||
internal class MemberTabsAndPropertiesResolver : TabsAndPropertiesResolver
|
||||
{
|
||||
@@ -370,7 +366,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
isLockedOutProperty.Value = _localizedTextService.Localize("general/no");
|
||||
}
|
||||
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -386,10 +382,10 @@ namespace Umbraco.Web.Models.Mapping
|
||||
isLockedOutProperty.Value = _localizedTextService.Localize("general/no");
|
||||
}
|
||||
|
||||
return result;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -433,7 +429,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
{Constants.Conventions.Member.IsLockedOut, Constants.Conventions.Member.IsLockedOut},
|
||||
{Constants.Conventions.Member.IsApproved, Constants.Conventions.Member.IsApproved},
|
||||
{Constants.Conventions.Member.Comments, Constants.Conventions.Member.Comments}
|
||||
};
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -444,12 +440,12 @@ namespace Umbraco.Web.Models.Mapping
|
||||
{Constants.Conventions.Member.IsLockedOut, umbracoProvider.LockPropertyTypeAlias},
|
||||
{Constants.Conventions.Member.IsApproved, umbracoProvider.ApprovedPropertyTypeAlias},
|
||||
{Constants.Conventions.Member.Comments, umbracoProvider.CommentPropertyTypeAlias}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user