From d1805b14480b5fd24e98288748506523091479f9 Mon Sep 17 00:00:00 2001 From: Shannon Date: Tue, 27 Oct 2015 11:22:28 +0100 Subject: [PATCH 1/2] U4-7214 Culture is not supported. Parameter name: name en_us is an invalid culture identifier error selecting user with different language after upgrade to 7.3.0 --- .../UpdateUserLanguagesToIsoCode.cs | 38 +++++++++++++++++++ src/Umbraco.Core/Umbraco.Core.csproj | 1 + .../umbraco/users/EditUser.aspx.cs | 7 ++-- 3 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeOne/UpdateUserLanguagesToIsoCode.cs diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeOne/UpdateUserLanguagesToIsoCode.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeOne/UpdateUserLanguagesToIsoCode.cs new file mode 100644 index 0000000000..50f78ca66d --- /dev/null +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeOne/UpdateUserLanguagesToIsoCode.cs @@ -0,0 +1,38 @@ +using System.Linq; +using Umbraco.Core.Configuration; +using Umbraco.Core.Logging; +using Umbraco.Core.Models.Rdbms; +using Umbraco.Core.Persistence.SqlSyntax; + +namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenThreeOne +{ + /// + /// This fixes the storage of user languages from the old format like en_us to en-US + /// + [Migration("7.3.1", 0, GlobalSettings.UmbracoMigrationName)] + public class UpdateUserLanguagesToIsoCode : MigrationBase + { + public UpdateUserLanguagesToIsoCode(ISqlSyntaxProvider sqlSyntax, ILogger logger) : base(sqlSyntax, logger) + { + } + + public override void Up() + { + var userData = Context.Database.Fetch(new Sql().Select("*").From(SqlSyntax)); + foreach (var user in userData.Where(x => x.UserLanguage.Contains("_"))) + { + var languageParts = user.UserLanguage.Split('_'); + if (languageParts.Length == 2) + { + Update.Table("umbracoUser") + .Set(new {userLanguage = languageParts[0] + "-" + languageParts[1].ToUpperInvariant()}) + .Where(new {id = user.Id}); + } + } + } + + public override void Down() + { + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 4552cac7f5..f9e3f3b38f 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -435,6 +435,7 @@ + diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs index 28991f1f6b..d9605506b4 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/users/EditUser.aspx.cs @@ -19,7 +19,6 @@ using umbraco.BasePages; using umbraco.BusinessLogic; using umbraco.businesslogic.Exceptions; using umbraco.cms.businesslogic.media; -using umbraco.cms.businesslogic.propertytype; using umbraco.cms.businesslogic.web; using umbraco.controls; using umbraco.presentation.channels.businesslogic; @@ -28,7 +27,9 @@ using umbraco.providers; using umbraco.cms.presentation.Trees; using Umbraco.Core.IO; using Umbraco.Core; +using Umbraco.Core.Models; using Umbraco.Core.Services; +using PropertyType = umbraco.cms.businesslogic.propertytype.PropertyType; namespace umbraco.cms.presentation.user { @@ -106,8 +107,8 @@ namespace umbraco.cms.presentation.user userType.Items.Add(li); } } - - var userCulture = Services.TextService.ConvertToSupportedCultureWithRegionCode(new CultureInfo(u.Language)); + + var userCulture = UserExtensions.GetUserCulture(u.Language, Services.TextService); // Populate ui language lsit foreach (var lang in Services.TextService.GetSupportedCultures()) From 6c80bd9eb9bec3748a884a38071631df569d8fc8 Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Tue, 27 Oct 2015 13:44:52 +0100 Subject: [PATCH 2/2] U4-6385 Poor Handling of disallowedUploadFiles #U4-6385 State: Review --- src/Umbraco.Web/Editors/MediaController.cs | 2 +- .../umbraco/webservices/MediaUploader.ashx.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index e03f55a785..65ba7a5cca 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -471,7 +471,7 @@ namespace Umbraco.Web.Editors { tempFiles.Notifications.Add(new Notification( Services.TextService.Localize("speechBubbles/operationFailedHeader"), - "Cannot upload file " + file + ", it is not an approved file type", + "Cannot upload file " + file.Headers.ContentDisposition.FileName + ", it is not an approved file type", SpeechBubbleIcon.Warning)); } } diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs index 1a8b6f0313..54ab4aa12d 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs @@ -161,7 +161,7 @@ namespace umbraco.presentation.umbraco.webservices var ext = uploadFile.FileName.Substring(uploadFile.FileName.LastIndexOf('.') + 1).ToLower(); if (UmbracoConfig.For.UmbracoSettings().Content.DisallowedUploadFiles.Contains(ext)) { - LogHelper.Warn("Cannot upload file " + uploadFile + ", it is not an approved file type"); + LogHelper.Warn("Cannot upload file " + uploadFile.FileName + ", it is not approved in `disallowedUploadFiles` in ~/config/UmbracoSettings.config"); continue; }