U4-6247 - fix PublicAccess repo

This commit is contained in:
Stephan
2016-07-18 19:26:49 +02:00
parent c617599fef
commit 4786a8037c
2 changed files with 18 additions and 16 deletions

View File

@@ -17,8 +17,7 @@ namespace Umbraco.Core.Persistence.Repositories
{
public PublicAccessRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax)
: base(work, cache, logger, sqlSyntax)
{
}
{ }
private FullDataSetRepositoryCachePolicyFactory<PublicAccessEntry, Guid> _cachePolicyFactory;
protected override IRepositoryCachePolicyFactory<PublicAccessEntry, Guid> CachePolicyFactory
@@ -46,6 +45,8 @@ namespace Umbraco.Core.Persistence.Repositories
sql.Where("umbracoAccess.id IN (@ids)", new { ids = ids });
}
sql.OrderBy<AccessDto>(x => x.NodeId, SqlSyntax);
var factory = new PublicAccessEntryFactory();
var dtos = Database.Fetch<AccessDto, AccessRuleDto, AccessDto>(new AccessRulesRelator().Map, sql);
return dtos.Select(factory.BuildEntity);
@@ -69,7 +70,7 @@ namespace Umbraco.Core.Persistence.Repositories
.From<AccessDto>(SqlSyntax)
.LeftJoin<AccessRuleDto>(SqlSyntax)
.On<AccessDto, AccessRuleDto>(SqlSyntax, left => left.Id, right => right.AccessId);
return sql;
}
@@ -162,7 +163,5 @@ namespace Umbraco.Core.Persistence.Repositories
{
return entity.Key;
}
}
}

View File

@@ -133,19 +133,21 @@ namespace umbraco.presentation.umbraco.dialogs
_memberGroups.ID = "Membergroups";
_memberGroups.Width = 175;
var selectedGroups = "";
var roles = Roles.GetAllRoles().OrderBy(x => x);
if (roles.Any())
// get roles from the membership provider
var roles = Roles.GetAllRoles().OrderBy(x => x).ToArray();
if (roles.Length > 0)
{
foreach (string role in roles)
foreach (var role in roles)
{
ListItem li = new ListItem(role, role);
if (IsPostBack == false)
{
if (Access.IsProtectedByMembershipRole(int.Parse(helper.Request("nodeid")), role))
selectedGroups += role + ",";
}
_memberGroups.Items.Add(li);
var listItem = new ListItem(role, role);
_memberGroups.Items.Add(listItem);
if (IsPostBack) continue;
// first time, initialize selected roles
if (Access.IsProtectedByMembershipRole(documentId, role))
selectedGroups += role + ",";
}
}
else
@@ -153,6 +155,7 @@ namespace umbraco.presentation.umbraco.dialogs
p_noGroupsFound.Visible = true;
rb_advanced.Enabled = false;
}
_memberGroups.Value = selectedGroups;
groupsSelector.Controls.Add(_memberGroups);
@@ -183,7 +186,7 @@ namespace umbraco.presentation.umbraco.dialogs
SimpleLoginNameValidator.IsValid = true;
var provider = MembershipProviderExtensions.GetMembersMembershipProvider();
int pageId = int.Parse(helper.Request("nodeId"));
if (e.CommandName == "simple")