Cleanup - sub-repositories

This commit is contained in:
Stephan
2016-06-08 10:31:21 +02:00
parent ded5848e4c
commit 0c8cfbb7fa
3 changed files with 19 additions and 24 deletions

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Xml.Linq;
using NPoco;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
@@ -30,6 +29,7 @@ namespace Umbraco.Core.Persistence.Repositories
private readonly ITemplateRepository _templateRepository;
private readonly ITagRepository _tagRepository;
private readonly CacheHelper _cacheHelper;
private PermissionRepository<IContent> _permissionRepository;
public ContentRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, IContentSection contentSection, IMappingResolver mappingResolver)
: base(work, cacheHelper, logger, contentSection, mappingResolver)
@@ -56,6 +56,10 @@ namespace Umbraco.Core.Persistence.Repositories
public bool EnsureUniqueNaming { get; set; }
// note: is ok to 'new' the repo here as it's a sub-repo really
private PermissionRepository<IContent> PermissionRepository => _permissionRepository
?? (_permissionRepository = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper));
#region Overrides of RepositoryBase<IContent>
protected override IContent PerformGet(int id)
@@ -305,10 +309,7 @@ namespace Umbraco.Core.Persistence.Repositories
//Assign the same permissions to it as the parent node
// http://issues.umbraco.org/issue/U4-2161
// fixme STOP new-ing repos everywhere!
// var prepo = UnitOfWork.CreateRepository<IPermissionRepository<IContent>>();
var permissionsRepo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
var parentPermissions = permissionsRepo.GetPermissionsForEntity(entity.ParentId).ToArray();
var parentPermissions = PermissionRepository.GetPermissionsForEntity(entity.ParentId).ToArray();
//if there are parent permissions then assign them, otherwise leave null and permissions will become the
// user's default permissions.
if (parentPermissions.Any())
@@ -318,7 +319,7 @@ namespace Umbraco.Core.Persistence.Repositories
from p in perm.AssignedPermissions
select new EntityPermissionSet.UserPermission(perm.UserId, p)).ToList();
permissionsRepo.ReplaceEntityPermissions(new EntityPermissionSet(entity.Id, userPermissions));
PermissionRepository.ReplaceEntityPermissions(new EntityPermissionSet(entity.Id, userPermissions));
//flag the entity's permissions changed flag so we can track those changes.
//Currently only used for the cache refreshers to detect if we should refresh all user permissions cache.
((Content)entity).PermissionsChanged = true;
@@ -630,8 +631,7 @@ namespace Umbraco.Core.Persistence.Repositories
public void ReplaceContentPermissions(EntityPermissionSet permissionSet)
{
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
repo.ReplaceEntityPermissions(permissionSet);
PermissionRepository.ReplaceEntityPermissions(permissionSet);
}
public void ClearPublishedFlag(IContent content)
@@ -664,14 +664,12 @@ namespace Umbraco.Core.Persistence.Repositories
/// <param name="userIds"></param>
public void AssignEntityPermission(IContent entity, char permission, IEnumerable<int> userIds)
{
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
repo.AssignEntityPermission(entity, permission, userIds);
PermissionRepository.AssignEntityPermission(entity, permission, userIds);
}
public IEnumerable<EntityPermission> GetPermissionsForEntity(int entityId)
{
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
return repo.GetPermissionsForEntity(entityId);
return PermissionRepository.GetPermissionsForEntity(entityId);
}
/// <summary>

View File

@@ -1,27 +1,22 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Dynamic;
using System.Globalization;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Web.Caching;
using NPoco;
using Umbraco.Core.Events;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence.SqlSyntax;
using Umbraco.Core.Persistence.UnitOfWork;
using Umbraco.Core.Services;
using CacheKeys = Umbraco.Core.Cache.CacheKeys;
using Umbraco.Core.Cache;
namespace Umbraco.Core.Persistence.Repositories
{
/// <summary>
/// A repository that exposes functionality to modify assigned permissions to a node
/// A (sub) repository that exposes functionality to modify assigned permissions to a node
/// </summary>
/// <typeparam name="TEntity"></typeparam>
internal class PermissionRepository<TEntity>

View File

@@ -26,6 +26,7 @@ namespace Umbraco.Core.Persistence.Repositories
{
private readonly IUserTypeRepository _userTypeRepository;
private readonly CacheHelper _cacheHelper;
private PermissionRepository<IContent> _permissionRepository;
public UserRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, IUserTypeRepository userTypeRepository, IMappingResolver mappingResolver)
: base(work, cacheHelper, logger, mappingResolver)
@@ -34,6 +35,10 @@ namespace Umbraco.Core.Persistence.Repositories
_cacheHelper = cacheHelper;
}
// note: is ok to 'new' the repo here as it's a sub-repo really
private PermissionRepository<IContent> PermissionRepository => _permissionRepository
?? (_permissionRepository = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper));
#region Overrides of RepositoryBase<int,IUser>
protected override IUser PerformGet(int id)
@@ -378,8 +383,7 @@ namespace Umbraco.Core.Persistence.Repositories
/// <returns></returns>
public IEnumerable<EntityPermission> GetUserPermissionsForEntities(int userId, params int[] entityIds)
{
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
return repo.GetUserPermissionsForEntities(userId, entityIds);
return PermissionRepository.GetUserPermissionsForEntities(userId, entityIds);
}
/// <summary>
@@ -390,8 +394,7 @@ namespace Umbraco.Core.Persistence.Repositories
/// <param name="entityIds"></param>
public void ReplaceUserPermissions(int userId, IEnumerable<char> permissions, params int[] entityIds)
{
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
repo.ReplaceUserPermissions(userId, permissions, entityIds);
PermissionRepository.ReplaceUserPermissions(userId, permissions, entityIds);
}
/// <summary>
@@ -402,8 +405,7 @@ namespace Umbraco.Core.Persistence.Repositories
/// <param name="entityIds"></param>
public void AssignUserPermission(int userId, char permission, params int[] entityIds)
{
var repo = new PermissionRepository<IContent>(UnitOfWork, _cacheHelper);
repo.AssignUserPermission(userId, permission, entityIds);
PermissionRepository.AssignUserPermission(userId, permission, entityIds);
}
#endregion