From d11b79421d4bbc55e135952e91aed1053b7abaa6 Mon Sep 17 00:00:00 2001 From: Zeegaan <70372949+Zeegaan@users.noreply.github.com> Date: Wed, 4 Aug 2021 09:46:01 +0200 Subject: [PATCH] fixed a bug where validation didnt update properly adressed in https://github.com/umbraco/Umbraco-CMS/pull/10688 --- .../Controllers/MemberController.cs | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs b/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs index 6cada09db3..d8ee3126a4 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs @@ -368,7 +368,45 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers if (created.Succeeded == false) { - return ValidationProblem(created.Errors.ToErrorMessage()); + MemberDisplay forDisplay = _umbracoMapper.Map(contentItem.PersistedContent); + foreach (IdentityError error in created.Errors) + { + switch (error.Code) + { + case nameof(IdentityErrorDescriber.InvalidUserName): + ModelState.AddPropertyError( + new ValidationResult(error.Description, new[] { "value" }), + string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + break; + case nameof(IdentityErrorDescriber.PasswordMismatch): + case nameof(IdentityErrorDescriber.PasswordRequiresDigit): + case nameof(IdentityErrorDescriber.PasswordRequiresLower): + case nameof(IdentityErrorDescriber.PasswordRequiresNonAlphanumeric): + case nameof(IdentityErrorDescriber.PasswordRequiresUniqueChars): + case nameof(IdentityErrorDescriber.PasswordRequiresUpper): + case nameof(IdentityErrorDescriber.PasswordTooShort): + ModelState.AddPropertyError( + new ValidationResult(error.Description, new[] { "value" }), + string.Format("{0}password", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + break; + case nameof(IdentityErrorDescriber.InvalidEmail): + ModelState.AddPropertyError( + new ValidationResult(error.Description, new[] { "value" }), + string.Format("{0}email", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + break; + case nameof(IdentityErrorDescriber.DuplicateUserName): + ModelState.AddPropertyError( + new ValidationResult(error.Description, new[] { "value" }), + string.Format("{0}login", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + break; + case nameof(IdentityErrorDescriber.DuplicateEmail): + ModelState.AddPropertyError( + new ValidationResult(error.Description, new[] { "value" }), + string.Format("{0}email", Constants.PropertyEditors.InternalGenericPropertiesPrefix)); + break; + } + } + return ValidationProblem(forDisplay, ModelState); } // now re-look up the member, which will now exist