Fixes user lockout with aspnet identity

This commit is contained in:
Shannon
2015-07-01 18:02:58 +02:00
parent 53a0c55b14
commit d0c4b2ab72
5 changed files with 41 additions and 12 deletions

View File

@@ -38,6 +38,30 @@ namespace Umbraco.Core.Models.Identity
public string UserTypeAlias { get; set; }
/// <summary>
/// Lockout is always enabled
/// </summary>
public override bool LockoutEnabled
{
get { return true; }
set
{
//do nothing
}
}
/// <summary>
/// Based on the user's lockout end date, this will determine if they are locked out
/// </summary>
internal bool IsLockedOut
{
get
{
var isLocked = (LockoutEndDateUtc.HasValue && LockoutEndDateUtc.Value.ToLocalTime() >= DateTime.Now);
return isLocked;
}
}
/// <summary>
/// Overridden to make the retrieval lazy
/// </summary>

View File

@@ -14,9 +14,7 @@ namespace Umbraco.Core.Models.Identity
config.CreateMap<IUser, BackOfficeIdentityUser>()
.ForMember(user => user.Email, expression => expression.MapFrom(user => user.Email))
.ForMember(user => user.Id, expression => expression.MapFrom(user => user.Id))
.ForMember(user => user.LockoutEnabled, expression => expression.MapFrom(user => user.IsLockedOut))
//Users currently are locked out for an infinite time, we do not support timed lock outs currently
.ForMember(user => user.LockoutEndDateUtc, expression => expression.UseValue(DateTime.MaxValue.ToUniversalTime()))
.ForMember(user => user.LockoutEndDateUtc, expression => expression.MapFrom(user => user.IsLockedOut ? DateTime.MaxValue.ToUniversalTime() : (DateTime?)null))
.ForMember(user => user.UserName, expression => expression.MapFrom(user => user.Username))
.ForMember(user => user.PasswordHash, expression => expression.MapFrom(user => GetPasswordHash(user.RawPasswordValue)))
.ForMember(user => user.Culture, expression => expression.MapFrom(user => user.GetUserCulture(applicationContext.Services.TextService)))
@@ -24,6 +22,7 @@ namespace Umbraco.Core.Models.Identity
.ForMember(user => user.StartMediaId, expression => expression.MapFrom(user => user.StartMediaId))
.ForMember(user => user.StartContentId, expression => expression.MapFrom(user => user.StartContentId))
.ForMember(user => user.UserTypeAlias, expression => expression.MapFrom(user => user.UserType.Alias))
.ForMember(user => user.AccessFailedCount, expression => expression.MapFrom(user => user.FailedPasswordAttempts))
.ForMember(user => user.AllowedSections, expression => expression.MapFrom(user => user.AllowedSections.ToArray()));
}