Compare commits

...
16 Commits
Author SHA1 Message Date
Sebastiaan Janssen d644f796f5 Revert "Trigger closeDialogs on mousedown rather than click"
This reverts commit 0cf3ca0d47.
2020-05-05 11:42:49 +02:00
Sebastiaan Janssen b3d3f334c9 Merge branch 'v7/dev' into v7/7.15 2020-05-04 13:57:29 +02:00
Steve MegsonandSebastiaan Janssen 1a96553320 Pointless commit 2020-05-04 13:50:36 +02:00
Steve MegsonandSebastiaan Janssen 0cf3ca0d47 Trigger closeDialogs on mousedown rather than click 2020-05-04 13:50:36 +02:00
Steve MegsonandSebastiaan Janssen fec313e735 Stop ng-swipe binding to mouse events 2020-05-04 13:50:36 +02:00
Andy FeltonandSebastiaan Janssen eebf2a83d1 Allows members to be ordered by additional system fields 2020-05-04 13:35:00 +02:00
Nill MortensenandSebastiaan Janssen 4a15c0f4ba fix #7127 Unlock user account doesn't work on 7.14.0 and 15 2020-05-04 13:20:32 +02:00
Sebastiaan Janssen 8a3c9e82e2 Make sure the correct version of ClientDependency-Mvc5 is used everywhere 2020-05-04 13:15:33 +02:00
Sebastiaan Janssen 745125db3b Merge remote-tracking branch 'origin/v7/dev' into v7/7.15 2020-05-04 13:05:54 +02:00
Alan Mac KennaandSebastiaan Janssen 902dbf76db upgrade tinymce to 4.9.10 2020-05-04 13:04:28 +02:00
Sebastiaan Janssen 3395554389 Remove unused code, as suggested in #2996 2020-05-04 13:02:39 +02:00
Sebastiaan Janssen 1a9f94d979 Migration was not released for 7.15.4, so need to target the new version 2020-05-04 12:46:45 +02:00
Sebastiaan Janssen d81b320e10 Bump version to 7.15.5 2020-05-04 12:41:53 +02:00
Sebastiaan Janssen b46b75e920 Merge branch 'v7/dev' into v7/7.15 2020-05-04 12:02:14 +02:00
Sebastiaan Janssen 2f228a6bb2 Merge branch 'v7/dev' into v7/7.15 2020-03-24 17:10:26 +01:00
Sebastiaan Janssen f86cddc9b0 Update dependency for 7.15.4
(cherry picked from commit d52695d81f)

# Conflicts:
#	build/NuSpecs/UmbracoCms.Core.nuspec
2020-03-19 14:17:19 +01:00
12 changed files with 33 additions and 39 deletions
+2 -2
View File
@@ -11,5 +11,5 @@ using System.Resources;
[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("7.15.4")]
[assembly: AssemblyInformationalVersion("7.15.4")]
[assembly: AssemblyFileVersion("7.15.5")]
[assembly: AssemblyInformationalVersion("7.15.5")]
@@ -6,7 +6,7 @@ namespace Umbraco.Core.Configuration
{
public class UmbracoVersion
{
private static readonly Version Version = new Version("7.15.4");
private static readonly Version Version = new Version("7.15.5");
/// <summary>
/// Gets the current version of Umbraco.
@@ -259,7 +259,7 @@ namespace Umbraco.Core.Models.Identity
{
get
{
var isLocked = (LockoutEndDateUtc.HasValue && LockoutEndDateUtc.Value.ToLocalTime() >= DateTime.Now);
var isLocked = (LockoutEndDateUtc.HasValue && LockoutEndDateUtc.Value.ToLocalTime() > DateTime.Now);
return isLocked;
}
}
@@ -4,7 +4,7 @@ using Umbraco.Core.Persistence.SqlSyntax;
namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenFifteenFour
{
[Migration("7.15.4", 1, Constants.System.UmbracoMigrationName)]
[Migration("7.15.5", 1, Constants.System.UmbracoMigrationName)]
public class PopulateMissingSecurityStamps : MigrationBase
{
public PopulateMissingSecurityStamps(ISqlSyntaxProvider sqlSyntax, ILogger logger) : base(sqlSyntax, logger)
@@ -543,7 +543,7 @@ namespace Umbraco.Core.Security
var result = await base.SetLockoutEndDateAsync(userId, lockoutEnd);
// The way we unlock is by setting the lockoutEnd date to the current datetime
if (result.Succeeded && lockoutEnd >= DateTimeOffset.UtcNow)
if (result.Succeeded && lockoutEnd > DateTimeOffset.UtcNow)
{
RaiseAccountLockedEvent(userId);
}
@@ -16,12 +16,6 @@ namespace Umbraco.Core.Serialization
{
_settings = new JsonSerializerSettings();
//var customResolver = new CustomIgnoreResolver
// {
// DefaultMembersSearchFlags = BindingFlags.Instance | BindingFlags.Public
// };
//_settings.ContractResolver = customResolver;
var javaScriptDateTimeConverter = new JavaScriptDateTimeConverter();
_settings.Converters.Add(javaScriptDateTimeConverter);
@@ -61,7 +55,6 @@ namespace Umbraco.Core.Serialization
/// <returns></returns>
public IStreamedResult ToStream(object input)
{
var formatting = GlobalSettings.DebugMode ? Formatting.Indented : Formatting.None;
string s = JsonConvert.SerializeObject(input, Formatting.Indented, _settings);
byte[] bytes = Encoding.UTF8.GetBytes(s);
MemoryStream ms = new MemoryStream(bytes);
+1 -1
View File
@@ -25,7 +25,7 @@
"jquery-migrate": "1.4.0",
"angular-dynamic-locale": "0.1.28",
"ng-file-upload": "~7.3.8",
"tinymce": "~4.9.9",
"tinymce": "~4.9.10",
"codemirror": "~5.3.0",
"angular-local-storage": "~0.2.3",
"moment": "~2.10.3",
@@ -293,6 +293,8 @@ ngMobile.directive('ngClick', ['$parse', '$timeout', '$rootElement',
* A leftward swipe is a quick, right-to-left slide of the finger.
* Though ngSwipeLeft is designed for touch-based devices, it will work with a mouse click and drag too.
*
* [well, it did until we disabled that feature to avoid problems with selecting text]
*
* @element ANY
* @param {expression} ngSwipeLeft {@link guide/expression Expression} to evaluate
* upon left swipe. (Event object is available as `$event`)
@@ -388,7 +390,7 @@ function makeSwipeDirective(directiveName, direction) {
deltaY / deltaX < MAX_VERTICAL_RATIO;
}
element.bind('touchstart mousedown', function(event) {
element.bind('touchstart', function(event) {
startCoords = getCoordinates(event);
valid = true;
totalX = 0;
@@ -401,7 +403,7 @@ function makeSwipeDirective(directiveName, direction) {
valid = false;
});
element.bind('touchmove mousemove', function(event) {
element.bind('touchmove', function(event) {
if (!valid) return;
// Android will send a touchcancel if it thinks we're starting to scroll.
@@ -440,7 +442,7 @@ function makeSwipeDirective(directiveName, direction) {
}
});
element.bind('touchend mouseup', function(event) {
element.bind('touchend', function(event) {
if (validSwipe(event)) {
// Prevent this swipe from bubbling up to any other elements with ngSwipes.
event.stopPropagation();
@@ -186,7 +186,9 @@ function listViewController($rootScope, $scope, $routeParams, $injector, $cookie
// Another special case for members, only fields on the base table (cmsMember) can be used for sorting
if (e.isSystem && $scope.entityType == "member") {
e.allowSorting = e.alias == 'username' || e.alias == 'email';
e.allowSorting = e.alias == 'username' ||
e.alias == 'email' ||
e.alias == 'updateDate';
}
if (e.isSystem) {
+4 -4
View File
@@ -126,8 +126,8 @@
<HintPath>..\packages\ClientDependency.1.9.9\lib\net45\ClientDependency.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ClientDependency.Core.Mvc, Version=1.8.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\ClientDependency-Mvc5.1.8.0.0\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
<Reference Include="ClientDependency.Core.Mvc, Version=1.9.3.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\packages\ClientDependency-Mvc5.1.9.3\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="dotless.Core, Version=1.5.2.0, Culture=neutral, PublicKeyToken=96b446c9e63eae34, processorArchitecture=MSIL">
@@ -1029,9 +1029,9 @@ xcopy "$(ProjectDir)"..\packages\SqlServerCE.4.0.0.1\x86\*.* "$(TargetDir)x86\"
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>7154</DevelopmentServerPort>
<DevelopmentServerPort>7155</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:7154</IISUrl>
<IISUrl>http://localhost:7155</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
+1 -1
View File
@@ -2,7 +2,7 @@
<packages>
<package id="AutoMapper" version="3.3.1" targetFramework="net45" />
<package id="ClientDependency" version="1.9.9" targetFramework="net452" />
<package id="ClientDependency-Mvc5" version="1.8.0.0" targetFramework="net45" />
<package id="ClientDependency-Mvc5" version="1.9.3" targetFramework="net452" />
<package id="dotless" version="1.5.2" targetFramework="net45" />
<package id="Examine" version="0.1.90" targetFramework="net45" />
<package id="ImageProcessor" version="2.7.0.100" targetFramework="net452" />
+13 -16
View File
@@ -85,7 +85,7 @@ namespace Umbraco.Web.Editors
Core.Constants.Security.BackOfficeAuthenticationType,
Core.Constants.Security.BackOfficeExternalAuthenticationType);
}
if (invite == null)
{
Logger.Warn<BackOfficeController>("VerifyUser endpoint reached with invalid token: NULL");
@@ -143,10 +143,10 @@ namespace Umbraco.Web.Editors
}
/// <summary>
/// This Action is used by the installer when an upgrade is detected but the admin user is not logged in. We need to
/// This Action is used by the installer when an upgrade is detected but the admin user is not logged in. We need to
/// ensure the user is authenticated before the install takes place so we redirect here to show the standard login screen.
/// </summary>
/// <returns></returns>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult> AuthorizeUpgrade()
{
@@ -177,7 +177,6 @@ namespace Umbraco.Web.Editors
//the dictionary returned is fine but the delimiter between an 'area' and a 'value' is a '/' but the javascript
// in the back office requres the delimiter to be a '_' so we'll just replace it
.ToDictionary(key => key.Key.Replace("/", "_"), val => val.Value);
var formatting = GlobalSettings.DebugMode ? Formatting.Indented : Formatting.None;
return new JsonNetResult { Data = textForCulture, Formatting = Formatting.Indented };
}
@@ -230,7 +229,6 @@ namespace Umbraco.Web.Editors
typeof(BackOfficeController) + "GetManifestAssetList",
() => getResult(),
new TimeSpan(0, 10, 0));
var formatting = GlobalSettings.DebugMode ? Formatting.Indented : Formatting.None;
return new JsonNetResult { Data = result, Formatting = Formatting.Indented };
}
@@ -244,11 +242,10 @@ namespace Umbraco.Web.Editors
new DirectoryInfo(Server.MapPath(SystemDirectories.AppPlugins)),
new DirectoryInfo(Server.MapPath(SystemDirectories.Config)),
HttpContext.IsDebuggingEnabled);
var formatting = GlobalSettings.DebugMode ? Formatting.Indented : Formatting.None;
return new JsonNetResult { Data = gridConfig.EditorsConfig.Editors, Formatting = Formatting.Indented };
}
/// <summary>
/// Returns the JavaScript object representing the static server variables javascript object
@@ -271,7 +268,7 @@ namespace Umbraco.Web.Editors
return JavaScript(result);
}
[HttpPost]
public ActionResult ExternalLogin(string provider, string redirectUrl = null)
@@ -341,10 +338,10 @@ namespace Umbraco.Web.Editors
}
/// <summary>
/// Used by Default and AuthorizeUpgrade to render as per normal if there's no external login info,
/// Used by Default and AuthorizeUpgrade to render as per normal if there's no external login info,
/// otherwise process the external login info.
/// </summary>
/// <returns></returns>
/// <returns></returns>
private async Task<ActionResult> RenderDefaultOrProcessExternalLoginAsync(
Func<ActionResult> defaultResponse,
Func<ActionResult> externalSignInResponse)
@@ -384,9 +381,9 @@ namespace Umbraco.Web.Editors
ExternalSignInAutoLinkOptions autoLinkOptions = null;
//Here we can check if the provider associated with the request has been configured to allow
// new users (auto-linked external accounts). This would never be used with public providers such as
// new users (auto-linked external accounts). This would never be used with public providers such as
// Google, unless you for some reason wanted anybody to be able to access the backend if they have a Google account
// .... not likely!
// .... not likely!
var authType = OwinContext.Authentication.GetExternalAuthenticationTypes().FirstOrDefault(x => x.AuthenticationType == loginInfo.Login.LoginProvider);
if (authType == null)
{
@@ -401,10 +398,10 @@ namespace Umbraco.Web.Editors
var user = await UserManager.FindAsync(loginInfo.Login);
if (user != null)
{
//TODO: It might be worth keeping some of the claims associated with the ExternalLoginInfo, in which case we
// wouldn't necessarily sign the user in here with the standard login, instead we'd update the
//TODO: It might be worth keeping some of the claims associated with the ExternalLoginInfo, in which case we
// wouldn't necessarily sign the user in here with the standard login, instead we'd update the
// UseUmbracoBackOfficeExternalCookieAuthentication extension method to have the correct provider and claims factory,
// ticket format, etc.. to create our back office user including the claims assigned and in this method we'd just ensure
// ticket format, etc.. to create our back office user including the claims assigned and in this method we'd just ensure
// that the ticket is created and stored and that the user is logged in.
var shouldSignIn = true;
@@ -477,7 +474,7 @@ namespace Umbraco.Web.Editors
{
autoLinkUser.AddRole(userGroup.Alias);
}
//call the callback if one is assigned
if (autoLinkOptions.OnAutoLinking != null)
{