From 57684a8672429eabc6e7ded089820bfe12a59957 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Thu, 3 Dec 2020 17:54:02 +0000 Subject: [PATCH] Removed unwanted comments --- .../Members/UmbracoMembersUserStore.cs | 50 ++----------------- .../Controllers/MemberController.cs | 26 +++++++--- .../Security/MembershipProviderBase.cs | 1 + 3 files changed, 22 insertions(+), 55 deletions(-) diff --git a/src/Umbraco.Infrastructure/Members/UmbracoMembersUserStore.cs b/src/Umbraco.Infrastructure/Members/UmbracoMembersUserStore.cs index e4db2b34cb..0d8b296c05 100644 --- a/src/Umbraco.Infrastructure/Members/UmbracoMembersUserStore.cs +++ b/src/Umbraco.Infrastructure/Members/UmbracoMembersUserStore.cs @@ -15,7 +15,7 @@ namespace Umbraco.Infrastructure.Members /// A custom user store that uses Umbraco member data /// public class UmbracoMembersUserStore : DisposableObjectSlim, - IUserStore, + //IUserStore, IUserPasswordStore //IUserEmailStore //IUserLoginStore @@ -52,8 +52,7 @@ namespace Umbraco.Infrastructure.Members UpdateMemberProperties(member, user); - //TODO: do we want to accept empty passwords here - if thirdparty for example? In other method if so? - + //TODO: do we want to accept empty passwords here - if third-party for example? In other method if so? _memberService.Save(member); //re-assign id @@ -106,33 +105,6 @@ namespace Umbraco.Infrastructure.Members //[Comments as per BackOfficeUserStore & identity package] var anythingChanged = false; //don't assign anything if nothing has changed as this will trigger the track changes of the model - - //if (identityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.LastLoginDateUtc)) - // || (member.LastLoginDate != default(DateTime) && identityUser.LastLoginDateUtc.HasValue == false) - // || identityUser.LastLoginDateUtc.HasValue && member.LastLoginDate.ToUniversalTime() != identityUser.LastLoginDateUtc.Value) - //{ - // anythingChanged = true; - // //if the LastLoginDate is being set to MinValue, don't convert it ToLocalTime - // var dt = identityUser.LastLoginDateUtc == DateTime.MinValue ? DateTime.MinValue : identityUser.LastLoginDateUtc.Value.ToLocalTime(); - // member.LastLoginDate = dt; - //} - - //if (identityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.LastPasswordChangeDateUtc)) - // || (member.LastPasswordChangeDate != default(DateTime) && identityUser.LastPasswordChangeDateUtc.HasValue == false) - // || identityUser.LastPasswordChangeDateUtc.HasValue && member.LastPasswordChangeDate.ToUniversalTime() != identityUser.LastPasswordChangeDateUtc.Value) - //{ - // anythingChanged = true; - // member.LastPasswordChangeDate = identityUser.LastPasswordChangeDateUtc.Value.ToLocalTime(); - //} - - //if (identityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.EmailConfirmed)) - // || (member.EmailConfirmedDate.HasValue && member.EmailConfirmedDate.Value != default(DateTime) && identityUser.EmailConfirmed == false) - // || ((member.EmailConfirmedDate.HasValue == false || member.EmailConfirmedDate.Value == default(DateTime)) && identityUser.EmailConfirmed)) - //{ - // anythingChanged = true; - // member.EmailConfirmedDate = identityUser.EmailConfirmed ? (DateTime?)DateTime.Now : null; - //} - if ( //memberIdentityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.Name)) && member.Name != memberIdentityUser.Name && memberIdentityUser.Name.IsNullOrWhiteSpace() == false) @@ -147,15 +119,7 @@ namespace Umbraco.Infrastructure.Members anythingChanged = true; member.Email = memberIdentityUser.Email; } - - //TODO: AccessFailedCount - //if (identityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.AccessFailedCount)) - // && member.FailedPasswordAttempts != identityUser.AccessFailedCount) - //{ - // anythingChanged = true; - // member.FailedPasswordAttempts = identityUser.AccessFailedCount; - //} - + if (member.IsLockedOut != memberIdentityUser.IsLockedOut) { anythingChanged = true; @@ -175,7 +139,6 @@ namespace Umbraco.Infrastructure.Members member.Username = memberIdentityUser.UserName; } - //TODO: PasswordHash and PasswordConfig if ( //member.IsPropertyDirty(nameof(BackOfficeIdentityUser.PasswordHash))&& member.RawPasswordValue != memberIdentityUser.PasswordHash @@ -186,13 +149,6 @@ namespace Umbraco.Infrastructure.Members member.PasswordConfiguration = memberIdentityUser.PasswordConfig; } - //TODO: SecurityStamp - //if (member.SecurityStamp != identityUser.SecurityStamp) - //{ - // anythingChanged = true; - // member.SecurityStamp = identityUser.SecurityStamp; - //} - // TODO: Roles // [Comment] Same comment as per BackOfficeUserStore: Fix this for Groups too //if (identityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.Roles)) || identityUser.IsPropertyDirty(nameof(BackOfficeIdentityUser.Groups))) diff --git a/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs b/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs index 13954a1810..f16667a779 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/MemberController.cs @@ -334,8 +334,6 @@ namespace Umbraco.Web.BackOffice.Controllers /// private async Task CreateMemberAsync(MemberSave contentItem, UmbracoMembersIdentityUser identityMember) { - // TODO: all member password processing and creation needs to be done with a new aspnet identity MemberUserManager that hasn't been created yet. - //var memberType = _memberTypeService.Get(contentItem.ContentTypeAlias); //if (memberType == null) // throw new InvalidOperationException($"No member type found with alias {contentItem.ContentTypeAlias}"); @@ -349,9 +347,6 @@ namespace Umbraco.Web.BackOffice.Controllers //return member; - - - IdentityResult created = await _memberManager.CreateAsync(identityMember, contentItem.Password.NewPassword); if (created.Succeeded == false) { @@ -362,7 +357,6 @@ namespace Umbraco.Web.BackOffice.Controllers IMember member = _memberService.GetByEmail(contentItem.Email); member.CreatorId = _backofficeSecurityAccessor.BackOfficeSecurity.CurrentUser.Id; - member.RawPasswordValue = identityMember.RawPasswordValue; //since the back office user is creating this member, they will be set to approved member.IsApproved = true; @@ -374,7 +368,6 @@ namespace Umbraco.Web.BackOffice.Controllers private UmbracoMembersIdentityUser ValidateMemberData(MemberSave contentItem) { - var memberType = _memberTypeService.Get(contentItem.ContentTypeAlias); if (memberType == null) { @@ -404,13 +397,30 @@ namespace Umbraco.Web.BackOffice.Controllers $"{Constants.PropertyEditors.InternalGenericPropertiesPrefix}email"); } + if (contentItem.Password != null && !contentItem.Password.NewPassword.IsNullOrWhiteSpace()) + { + //TODO: check password + //var validPassword = await _memberManager.CheckPasswordAsync(null, contentItem.Password.NewPassword); + //if (!validPassword) + //{ + // ModelState.AddPropertyError( + // new ValidationResult("Invalid password", new[] { "value" }), + // $"{Constants.PropertyEditors.InternalGenericPropertiesPrefix}password"); + //} + } + else + { + ModelState.AddPropertyError( + new ValidationResult("Password cannot be empty", new[] { "value" }), + $"{Constants.PropertyEditors.InternalGenericPropertiesPrefix}password"); + } + // Create the member with the MemberManager var identityMember = UmbracoMembersIdentityUser.CreateNew( contentItem.Username, contentItem.Email, memberType.Alias, contentItem.Name); - //TODO: confirm where to do this identityMember.RawPasswordValue = contentItem.Password.NewPassword; return identityMember; diff --git a/src/Umbraco.Web/Security/MembershipProviderBase.cs b/src/Umbraco.Web/Security/MembershipProviderBase.cs index a62ef958c4..669b105775 100644 --- a/src/Umbraco.Web/Security/MembershipProviderBase.cs +++ b/src/Umbraco.Web/Security/MembershipProviderBase.cs @@ -19,6 +19,7 @@ namespace Umbraco.Web.Security /// /// A base membership provider class offering much of the underlying functionality for initializing and password encryption/hashing. /// + [Obsolete("Will be replaced by UmbracoMemberUserManager")] public abstract class MembershipProviderBase : MembershipProvider { private readonly IHostingEnvironment _hostingEnvironment;