tweaks to membership providers so if we cast we can specify the member type.
This commit is contained in:
@@ -257,8 +257,9 @@ namespace Umbraco.Web.Security.Providers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new membership user to the data source.
|
||||
/// Adds a new membership user to the data source with the specified member type
|
||||
/// </summary>
|
||||
/// <param name="memberType">A specific member type to create the member for</param>
|
||||
/// <param name="username">The user name for the new user.</param>
|
||||
/// <param name="password">The password for the new user.</param>
|
||||
/// <param name="email">The e-mail address for the new user.</param>
|
||||
@@ -270,16 +271,16 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// <returns>
|
||||
/// A <see cref="T:System.Web.Security.MembershipUser"></see> object populated with the information for the newly created user.
|
||||
/// </returns>
|
||||
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer,
|
||||
public MembershipUser CreateUser(string memberType, string username, string password, string email, string passwordQuestion, string passwordAnswer,
|
||||
bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||
{
|
||||
LogHelper.Debug<MembersMembershipProvider>("Member signup requested: username -> " + username + ". email -> " +email);
|
||||
LogHelper.Debug<MembersMembershipProvider>("Member signup requested: username -> " + username + ". email -> " + email);
|
||||
|
||||
// Validate password
|
||||
if (IsPasswordValid(password) == false)
|
||||
{
|
||||
status = MembershipCreateStatus.InvalidPassword;
|
||||
return null;
|
||||
status = MembershipCreateStatus.InvalidPassword;
|
||||
return null;
|
||||
}
|
||||
|
||||
// Validate email
|
||||
@@ -327,21 +328,41 @@ namespace Umbraco.Web.Security.Providers
|
||||
return null;
|
||||
}
|
||||
|
||||
var member = MemberService.CreateMember(email, username, password, DefaultMemberTypeAlias);
|
||||
var member = MemberService.CreateMember(email, username, password, memberType);
|
||||
|
||||
member.IsApproved = isApproved;
|
||||
member.PasswordQuestion = passwordQuestion;
|
||||
member.PasswordAnswer = passwordAnswer;
|
||||
|
||||
|
||||
//encrypts/hashes the password depending on the settings
|
||||
member.Password = EncryptOrHashPassword(member.Password);
|
||||
|
||||
MemberService.Save(member);
|
||||
|
||||
|
||||
status = MembershipCreateStatus.Success;
|
||||
return member.AsConcreteMembershipUser();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new membership user to the data source.
|
||||
/// </summary>
|
||||
/// <param name="username">The user name for the new user.</param>
|
||||
/// <param name="password">The password for the new user.</param>
|
||||
/// <param name="email">The e-mail address for the new user.</param>
|
||||
/// <param name="passwordQuestion">The password question for the new user.</param>
|
||||
/// <param name="passwordAnswer">The password answer for the new user</param>
|
||||
/// <param name="isApproved">Whether or not the new user is approved to be validated.</param>
|
||||
/// <param name="providerUserKey">The unique identifier from the membership data source for the user.</param>
|
||||
/// <param name="status">A <see cref="T:System.Web.Security.MembershipCreateStatus"></see> enumeration value indicating whether the user was created successfully.</param>
|
||||
/// <returns>
|
||||
/// A <see cref="T:System.Web.Security.MembershipUser"></see> object populated with the information for the newly created user.
|
||||
/// </returns>
|
||||
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer,
|
||||
bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||
{
|
||||
return CreateUser(DefaultMemberTypeAlias, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Processes a request to update the password question and answer for a membership user.
|
||||
/// </summary>
|
||||
|
||||
@@ -358,6 +358,68 @@ namespace umbraco.providers.members
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new membership user to the data source.
|
||||
/// </summary>
|
||||
/// <param name="memberTypeAlias"></param>
|
||||
/// <param name="username">The user name for the new user.</param>
|
||||
/// <param name="password">The password for the new user.</param>
|
||||
/// <param name="email">The e-mail address for the new user.</param>
|
||||
/// <param name="passwordQuestion">The password question for the new user.</param>
|
||||
/// <param name="passwordAnswer">The password answer for the new user</param>
|
||||
/// <param name="isApproved">Whether or not the new user is approved to be validated.</param>
|
||||
/// <param name="providerUserKey">The unique identifier from the membership data source for the user.</param>
|
||||
/// <param name="status">A <see cref="T:System.Web.Security.MembershipCreateStatus"></see> enumeration value indicating whether the user was created successfully.</param>
|
||||
/// <returns>
|
||||
/// A <see cref="T:System.Web.Security.MembershipUser"></see> object populated with the information for the newly created user.
|
||||
/// </returns>
|
||||
public MembershipUser CreateUser(string memberTypeAlias, string username, string password, string email, string passwordQuestion,
|
||||
string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||
{
|
||||
if (Member.GetMemberFromLoginName(username) != null)
|
||||
status = MembershipCreateStatus.DuplicateUserName;
|
||||
else if (Member.GetMemberFromEmail(email) != null && RequiresUniqueEmail)
|
||||
status = MembershipCreateStatus.DuplicateEmail;
|
||||
else
|
||||
{
|
||||
var memberType = MemberType.GetByAlias(memberTypeAlias);
|
||||
if (memberType == null)
|
||||
{
|
||||
throw new InvalidOperationException("Could not find a member type with alias " + memberTypeAlias + ". Ensure your membership provider configuration is up to date and that the default member type exists.");
|
||||
}
|
||||
|
||||
Member m = Member.MakeNew(username, email, memberType, User.GetUser(0));
|
||||
m.Password = password;
|
||||
|
||||
MembershipUser mUser =
|
||||
ConvertToMembershipUser(m);
|
||||
|
||||
// custom fields
|
||||
if (!String.IsNullOrEmpty(m_PasswordRetrievalQuestionPropertyTypeAlias))
|
||||
UpdateMemberProperty(m, m_PasswordRetrievalQuestionPropertyTypeAlias, passwordQuestion);
|
||||
|
||||
if (!String.IsNullOrEmpty(m_PasswordRetrievalAnswerPropertyTypeAlias))
|
||||
UpdateMemberProperty(m, m_PasswordRetrievalAnswerPropertyTypeAlias, passwordAnswer);
|
||||
|
||||
if (!String.IsNullOrEmpty(m_ApprovedPropertyTypeAlias))
|
||||
UpdateMemberProperty(m, m_ApprovedPropertyTypeAlias, isApproved);
|
||||
|
||||
if (!String.IsNullOrEmpty(m_LastLoginPropertyTypeAlias))
|
||||
{
|
||||
mUser.LastActivityDate = DateTime.Now;
|
||||
UpdateMemberProperty(m, m_LastLoginPropertyTypeAlias, mUser.LastActivityDate);
|
||||
}
|
||||
|
||||
// save
|
||||
m.Save();
|
||||
|
||||
status = MembershipCreateStatus.Success;
|
||||
|
||||
return mUser;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adds a new membership user to the data source.
|
||||
/// </summary>
|
||||
@@ -375,47 +437,7 @@ namespace umbraco.providers.members
|
||||
public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion,
|
||||
string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
|
||||
{
|
||||
if (Member.GetMemberFromLoginName(username) != null)
|
||||
status = MembershipCreateStatus.DuplicateUserName;
|
||||
else if (Member.GetMemberFromEmail(email) != null && RequiresUniqueEmail)
|
||||
status = MembershipCreateStatus.DuplicateEmail;
|
||||
else
|
||||
{
|
||||
var memberType = MemberType.GetByAlias(m_DefaultMemberTypeAlias);
|
||||
if (memberType == null)
|
||||
{
|
||||
throw new InvalidOperationException("Could not find a member type with alias " + m_DefaultMemberTypeAlias + ". Ensure your membership provider configuration is up to date and that the default member type exists.");
|
||||
}
|
||||
|
||||
Member m = Member.MakeNew(username, email, memberType, User.GetUser(0));
|
||||
m.Password = password;
|
||||
|
||||
MembershipUser mUser =
|
||||
ConvertToMembershipUser(m);
|
||||
|
||||
// custom fields
|
||||
if (!String.IsNullOrEmpty(m_PasswordRetrievalQuestionPropertyTypeAlias))
|
||||
UpdateMemberProperty(m, m_PasswordRetrievalQuestionPropertyTypeAlias, passwordQuestion);
|
||||
|
||||
if (!String.IsNullOrEmpty(m_PasswordRetrievalAnswerPropertyTypeAlias))
|
||||
UpdateMemberProperty(m, m_PasswordRetrievalAnswerPropertyTypeAlias, passwordAnswer);
|
||||
|
||||
if (!String.IsNullOrEmpty(m_ApprovedPropertyTypeAlias))
|
||||
UpdateMemberProperty(m, m_ApprovedPropertyTypeAlias, isApproved);
|
||||
|
||||
if (!String.IsNullOrEmpty(m_LastLoginPropertyTypeAlias)) {
|
||||
mUser.LastActivityDate = DateTime.Now;
|
||||
UpdateMemberProperty(m, m_LastLoginPropertyTypeAlias, mUser.LastActivityDate);
|
||||
}
|
||||
|
||||
// save
|
||||
m.Save();
|
||||
|
||||
status = MembershipCreateStatus.Success;
|
||||
|
||||
return mUser;
|
||||
}
|
||||
return null;
|
||||
return CreateUser(m_DefaultMemberTypeAlias, username, password, email, passwordQuestion, passwordAnswer, isApproved, providerUserKey, out status);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user