Merge remote-tracking branch 'origin/6.2.0' into 7.0.2
Conflicts: src/Umbraco.Core/Security/MembershipProviderBase.cs src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs src/Umbraco.Tests/TreesAndSections/SectionTests.cs
This commit is contained in:
@@ -389,52 +389,69 @@ namespace Umbraco.Core.Security
|
||||
/// Ensures the ValidatingPassword event is executed before executing PerformCreateUser and performs basic membership provider validation of values.
|
||||
/// </remarks>
|
||||
public sealed override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||
{
|
||||
var valStatus = ValidateNewUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
|
||||
if (valStatus != MembershipCreateStatus.Success)
|
||||
{
|
||||
status = valStatus;
|
||||
return null;
|
||||
}
|
||||
|
||||
return PerformCreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Performs the validation of the information for creating a new user
|
||||
/// </summary>
|
||||
/// <param name="username"></param>
|
||||
/// <param name="password"></param>
|
||||
/// <param name="email"></param>
|
||||
/// <param name="passwordQuestion"></param>
|
||||
/// <param name="passwordAnswer"></param>
|
||||
/// <param name="isApproved"></param>
|
||||
/// <param name="providerUserKey"></param>
|
||||
/// <returns></returns>
|
||||
protected MembershipCreateStatus ValidateNewUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey)
|
||||
{
|
||||
var args = new ValidatePasswordEventArgs(username, password, true);
|
||||
OnValidatingPassword(args);
|
||||
if (args.Cancel)
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidPassword;
|
||||
return null;
|
||||
return MembershipCreateStatus.InvalidPassword;
|
||||
}
|
||||
|
||||
// Validate password
|
||||
var passwordValidAttempt = IsPasswordValid(password, MinRequiredNonAlphanumericCharacters, PasswordStrengthRegularExpression, MinRequiredPasswordLength);
|
||||
if (passwordValidAttempt.Success == false)
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidPassword;
|
||||
return null;
|
||||
return MembershipCreateStatus.InvalidPassword;
|
||||
}
|
||||
|
||||
// Validate email
|
||||
if (IsEmailValid(email) == false)
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidEmail;
|
||||
return null;
|
||||
return MembershipCreateStatus.InvalidEmail;
|
||||
}
|
||||
|
||||
// Make sure username isn't all whitespace
|
||||
if (string.IsNullOrWhiteSpace(username.Trim()))
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidUserName;
|
||||
return null;
|
||||
return MembershipCreateStatus.InvalidUserName;
|
||||
}
|
||||
|
||||
// Check password question
|
||||
if (string.IsNullOrWhiteSpace(passwordQuestion) && RequiresQuestionAndAnswer)
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidQuestion;
|
||||
return null;
|
||||
return MembershipCreateStatus.InvalidQuestion;
|
||||
}
|
||||
|
||||
// Check password answer
|
||||
if (string.IsNullOrWhiteSpace(passwordAnswer) && RequiresQuestionAndAnswer)
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidAnswer;
|
||||
return null;
|
||||
return MembershipCreateStatus.InvalidAnswer;
|
||||
}
|
||||
|
||||
return PerformCreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
|
||||
return MembershipCreateStatus.Success;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -48,8 +48,13 @@ namespace Umbraco.Core.Security
|
||||
public MembershipUser CreateUser(string memberTypeAlias, string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||
{
|
||||
//do the base validation first
|
||||
base.CreateUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
|
||||
|
||||
var valStatus = ValidateNewUser(username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey);
|
||||
if (valStatus != MembershipCreateStatus.Success)
|
||||
{
|
||||
status = valStatus;
|
||||
return null;
|
||||
}
|
||||
|
||||
return PerformCreateUser(memberTypeAlias, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user