Simplifies the UnlockUser method so we don't have to have it in the BackOfficeUserManager

This commit is contained in:
Shannon
2017-09-18 19:59:23 +10:00
parent d468e346f1
commit 8b39f495e5
3 changed files with 31 additions and 52 deletions

View File

@@ -447,16 +447,9 @@ namespace Umbraco.Web.Security.Providers
return generatedPassword;
}
/// <summary>
/// Clears a lock so that the membership user can be validated.
/// </summary>
/// <param name="username">The membership user to clear the lock status for.</param>
/// <returns>
/// true if the membership user was successfully unlocked; otherwise, false.
/// </returns>
public override bool UnlockUser(string username)
internal virtual bool PerformUnlockUser(string username, out TEntity member)
{
var member = MemberService.GetByUsername(username);
member = MemberService.GetByUsername(username);
if (member == null)
{
throw new ProviderException(string.Format("No member with the username '{0}' found", username));
@@ -469,10 +462,24 @@ namespace Umbraco.Web.Security.Providers
member.FailedPasswordAttempts = 0;
MemberService.Save(member);
return true;
}
/// <summary>
/// Clears a lock so that the membership user can be validated.
/// </summary>
/// <param name="username">The membership user to clear the lock status for.</param>
/// <returns>
/// true if the membership user was successfully unlocked; otherwise, false.
/// </returns>
public override bool UnlockUser(string username)
{
TEntity member;
var result = PerformUnlockUser(username, out member);
return result;
}
/// <summary>
/// Updates e-mail approved status, lock status and comment on a user.
/// </summary>

View File

@@ -82,21 +82,25 @@ namespace Umbraco.Web.Security.Providers
return _defaultMemberTypeAlias;
}
}
/// <summary>
/// Overridden in order to call the BackOfficeUserManager.UnlockUser method in order to raise the user audit events
/// </summary>
/// <param name="username"></param>
/// <param name="member"></param>
/// <returns></returns>
public override bool UnlockUser(string username)
internal override bool PerformUnlockUser(string username, out IUser member)
{
var userManager = GetBackofficeUserManager();
//if this is null it means it's not in a web context so we'll revert to calling the base class
if (userManager == null)
return base.UnlockUser(username);
return userManager.UnlockUser(username);
var result = base.PerformUnlockUser(username, out member);
if (result)
{
var userManager = GetBackofficeUserManager();
if (userManager != null)
{
userManager.RaiseAccountUnlockedEvent(member.Id);
}
}
return result;
}
/// <summary>