Port 7.7 - WIP

This commit is contained in:
Stephan
2017-09-19 15:51:47 +02:00
parent d54658009c
commit 9ed6576908
126 changed files with 3447 additions and 596 deletions

View File

@@ -82,7 +82,7 @@ namespace Umbraco.Core.Configuration
catch (Exception ex)
{
//invalid path format or something... try/catch to be safe
LogHelper.Error<ClientDependencyConfiguration>("Could not get path from ClientDependency.config", ex);
_logger.Error<ClientDependencyConfiguration>("Could not get path from ClientDependency.config", ex);
}
var success = true;
@@ -99,7 +99,7 @@ namespace Umbraco.Core.Configuration
catch (Exception ex)
{
// Something could be locking the directory or the was another error, making sure we don't break the upgrade installer
LogHelper.Error<ClientDependencyConfiguration>("Could not clear temp files", ex);
_logger.Error<ClientDependencyConfiguration>("Could not clear temp files", ex);
success = false;
}
}

View File

@@ -419,7 +419,7 @@ namespace Umbraco.Core.Models.Membership
if (customUserGroup != null)
{
//if the group isn't IUserGroup we'll need to look it up
var realGroup = customUserGroup as IUserGroup ?? ApplicationContext.Current.Services.UserService.GetUserGroupById(customUserGroup.Id);
var realGroup = customUserGroup as IUserGroup ?? Current.Services.UserService.GetUserGroupById(customUserGroup.Id);
realGroup.AddAllowedSection(sectionAlias);
//now we need to flag this for saving (hack!)
GroupsToSave.Add(realGroup);

View File

@@ -252,7 +252,7 @@ namespace Umbraco.Core.Persistence.Repositories
public Dictionary<string, Guid> GetDictionaryItemKeyMap()
{
var columns = new[] { "key", "id" }.Select(x => (object) SqlSyntax.GetQuotedColumnName(x)).ToArray();
var sql = new Sql().Select(columns).From<DictionaryDto>(SqlSyntax);
var sql = UnitOfWork.Sql().Select(columns).From<DictionaryDto>();
return Database.Fetch<DictionaryItemKeyIdDto>(sql).ToDictionary(x => x.Key, x => x.Id);
}

View File

@@ -1,29 +1,10 @@
using System;
using System.Xml.Linq;
using Umbraco.Core.Models;
namespace Umbraco.Core.Persistence.Repositories
{
public interface IMediaRepository : IRepositoryVersionable<int, IMedia>, IRecycleBinRepository<IMedia>, IReadRepository<Guid, IMedia>
{
/// <summary>
/// Used to add/update published xml for the media item
/// </summary>
/// <param name="content"></param>
/// <param name="xml"></param>
void AddOrUpdateContentXml(IMedia content, Func<IMedia, XElement> xml);
/// <summary>
/// Used to remove the content xml for a content item
/// </summary>
/// <param name="content"></param>
void DeleteContentXml(IMedia content);
/// <summary>
/// Used to add/update preview xml for the content item
/// </summary>
/// <param name="content"></param>
/// <param name="xml"></param>
void AddOrUpdatePreviewXml(IMedia content, Func<IMedia, XElement> xml);
IMedia GetMediaByPath(string mediaPath);
}
}

View File

@@ -600,7 +600,7 @@ ORDER BY colName";
/// </remarks>
public IEnumerable<IUser> GetPagedResultsByQuery(IQuery<IUser> query, long pageIndex, int pageSize, out long totalRecords,
Expression<Func<IUser, object>> orderBy, Direction orderDirection = Direction.Ascending,
string[] userGroups = null, UserState[] userState = null, IQuery<IUser> filter = null)
string[] includeUserGroups = null, string[] excludeUserGroups = null, UserState[] userState = null, IQuery<IUser> filter = null)
{
if (orderBy == null) throw new ArgumentNullException(nameof(orderBy));

View File

@@ -129,7 +129,7 @@ namespace Umbraco.Core.Persistence
/// </summary>
internal bool EnableSqlCount
{
get { return _enableCount; }
get => _enableCount;
set
{
_enableCount = value;

View File

@@ -7,6 +7,7 @@ using System.Web.Security;
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.Owin;
using Microsoft.Owin.Security.DataProtection;
using Umbraco.Core.Composing;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Models.Identity;
@@ -49,20 +50,6 @@ namespace Umbraco.Core.Security
#region Static Create methods
[EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("Use the overload specifying all dependencies instead")]
public static BackOfficeUserManager Create(
IdentityFactoryOptions<BackOfficeUserManager> options,
IUserService userService,
IExternalLoginService externalLoginService,
MembershipProviderBase membershipProvider)
{
return Create(options, userService,
ApplicationContext.Current.Services.EntityService,
externalLoginService, membershipProvider,
UmbracoConfig.For.UmbracoSettings().Content);
}
/// <summary>
/// Creates a BackOfficeUserManager instance with all default options and the default BackOfficeUserManager
/// </summary>

View File

@@ -350,6 +350,7 @@ namespace Umbraco.Core.Security
//Special cases to allow changing password without validating existing credentials
// * the member is new and doesn't have a password set
// * during installation to set the admin password
var installing = Current.RuntimeState.Level == RuntimeLevel.Install;
if (AllowManuallyChangingPassword == false
&& (rawPasswordValue.StartsWith(Constants.Security.EmptyPasswordPrefix)
|| (installing && oldPassword == "default")))

View File

@@ -411,9 +411,9 @@ namespace Umbraco.Core.Services
public Dictionary<string, Guid> GetDictionaryItemKeyMap()
{
using (var uow = UowProvider.GetUnitOfWork(readOnly: true))
using (var uow = UowProvider.CreateUnitOfWork(readOnly: true))
{
var repository = RepositoryFactory.CreateDictionaryRepository(uow);
var repository = uow.CreateRepository<IDictionaryRepository>();
return repository.GetDictionaryItemKeyMap();
}
}

View File

@@ -111,7 +111,7 @@ namespace Umbraco.Core.Services
var parent = GetById(parentId);
return CreateMedia(name, parent, mediaTypeAlias, userId);
}
/// <summary>
/// Creates an <see cref="IMedia"/> object of a specified media type.
/// </summary>
@@ -378,7 +378,7 @@ namespace Umbraco.Core.Services
return repository.GetAll(idsA);
}
}
/// <summary>
/// Gets a collection of <see cref="IMedia"/> objects by the Id of the <see cref="IMediaType"/>
/// </summary>
@@ -632,7 +632,7 @@ namespace Umbraco.Core.Services
var query = uow.Query<IMedia>();
//if the id is System Root, then just get all
if (id != Constants.System.Root)
{
{
var entityRepository = uow.CreateRepository<IEntityRepository>();
var mediaPath = entityRepository.GetAllPaths(Constants.ObjectTypes.MediaGuid, id).ToArray();
if (mediaPath.Length == 0)
@@ -797,7 +797,7 @@ namespace Umbraco.Core.Services
using (var uow = UowProvider.CreateUnitOfWork())
{
var saveEventArgs = new SaveEventArgs<IMedia>(media, evtMsgs);
var saveEventArgs = new SaveEventArgs<IMedia>(media, evtMsgs);
if (raiseEvents && uow.Events.DispatchCancelable(Saving, this, saveEventArgs))
{
uow.Complete();
@@ -1170,7 +1170,7 @@ namespace Umbraco.Core.Services
.ToArray();
moveEventArgs.MoveInfoCollection = moveInfo;
moveEventArgs.CanCancel = false;
moveEventArgs.CanCancel = false;
uow.Events.Dispatch(Moved, this, moveEventArgs);
Audit(uow, AuditType.Move, "Move Media performed by user", userId, media.Id);
uow.Complete();

View File

@@ -132,17 +132,18 @@ namespace Umbraco.Core.Services
var saveEventArgs = new SaveEventArgs<PublicAccessEntry>(entry, evtMsgs);
if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs))
{
uow.Commit();
uow.Complete();
return OperationStatus.Attempt.Cancel(evtMsgs, entry);
}
repo.AddOrUpdate(entry);
uow.Complete();
saveEventArgs.CanCancel = false;
uow.Events.Dispatch(Saved, this, saveEventArgs);
}
saveEventArgs.CanCancel = false;
uow.Events.Dispatch(Saved, this, saveEventArgs);
return OperationStatus.Attempt.Succeed(evtMsgs, entry);
}
@@ -171,16 +172,17 @@ namespace Umbraco.Core.Services
var saveEventArgs = new SaveEventArgs<PublicAccessEntry>(entry, evtMsgs);
if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs))
{
uow.Commit();
uow.Complete();
return OperationStatus.Attempt.Cancel(evtMsgs);
}
repo.AddOrUpdate(entry);
uow.Complete();
saveEventArgs.CanCancel = false;
uow.Events.Dispatch(Saved, this, saveEventArgs);
}
saveEventArgs.CanCancel = false;
uow.Events.Dispatch(Saved, this, saveEventArgs);
return OperationStatus.Attempt.Succeed(evtMsgs);
}
@@ -197,17 +199,18 @@ namespace Umbraco.Core.Services
var saveEventArgs = new SaveEventArgs<PublicAccessEntry>(entry, evtMsgs);
if (uow.Events.DispatchCancelable(Saving, this, saveEventArgs))
{
uow.Commit();
uow.Complete();
return OperationStatus.Attempt.Cancel(evtMsgs);
}
var repo = uow.CreateRepository<IPublicAccessRepository>();
repo.AddOrUpdate(entry);
uow.Complete();
saveEventArgs.CanCancel = false;
uow.Events.Dispatch(Saved, this, saveEventArgs);
}
saveEventArgs.CanCancel = false;
uow.Events.Dispatch(Saved, this, saveEventArgs);
return OperationStatus.Attempt.Succeed(evtMsgs);
}
@@ -224,17 +227,18 @@ namespace Umbraco.Core.Services
var deleteEventArgs = new DeleteEventArgs<PublicAccessEntry>(entry, evtMsgs);
if (uow.Events.DispatchCancelable(Deleting, this, deleteEventArgs))
{
uow.Commit();
return OperationStatus.Cancelled(evtMsgs);
uow.Complete();
return OperationStatus.Attempt.Cancel(evtMsgs);
}
var repo = uow.CreateRepository<IPublicAccessRepository>();
repo.Delete(entry);
uow.Complete();
deleteEventArgs.CanCancel = false;
uow.Events.Dispatch(Deleted, this, deleteEventArgs);
}
deleteEventArgs.CanCancel = false;
uow.Events.Dispatch(Deleted, this, deleteEventArgs);
return OperationStatus.Attempt.Succeed(evtMsgs);
}

View File

@@ -55,7 +55,6 @@ namespace Umbraco.Core
{ PartialView, UdiType.StringUdi},
{ PartialViewMacro, UdiType.StringUdi},
{ Stylesheet, UdiType.StringUdi},
{ UserControl, UdiType.StringUdi},
{ Xslt, UdiType.StringUdi},
};
}

View File

@@ -54,6 +54,9 @@
<ItemGroup>
<!-- note: NuGet deals with transitive references now -->
<PackageReference Include="AutoMapper" Version="6.1.1" />
<PackageReference Include="ClientDependency">
<Version>1.9.2</Version>
</PackageReference>
<!-- do not update -->
<PackageReference Include="HtmlAgilityPack" Version="1.5.1" />
<PackageReference Include="ImageProcessor" Version="2.5.4" />
@@ -1311,6 +1314,7 @@
<Compile Include="Security\MembershipProviderPasswordValidator.cs" />
<Compile Include="Security\OwinExtensions.cs" />
<Compile Include="Security\UmbracoBackOfficeIdentity.cs" />
<Compile Include="Security\UmbracoEmailMessage.cs" />
<Compile Include="Security\UmbracoMembershipProviderBase.cs" />
<Compile Include="Security\UserAwareMembershipProviderPasswordHasher.cs" />
<Compile Include="Security\UserData.cs" />