Fixes/updates more of the member repository and related items
This commit is contained in:
@@ -438,7 +438,7 @@ namespace Umbraco.Core.Models
|
||||
|
||||
public override void ChangeTrashedState(bool isTrashed, int parentId = -20)
|
||||
{
|
||||
throw new NotImplementedException("Members can't be trashed as no Recycle Bin exists, so use of this method is invalid");
|
||||
throw new NotSupportedException("Members can't be trashed as no Recycle Bin exists, so use of this method is invalid");
|
||||
}
|
||||
|
||||
/* Internal experiment - only used for mapping queries.
|
||||
|
||||
@@ -329,11 +329,19 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
//TODO ContentType for the Member entity
|
||||
|
||||
//Create the PropertyData for this version - cmsPropertyData
|
||||
var propertyFactory = new PropertyFactory(entity.ContentType, entity.Version, entity.Id);
|
||||
var propertyDataDtos = propertyFactory.BuildDto(((Member)entity).Properties);
|
||||
var propertyFactory = new PropertyFactory(entity.ContentType, entity.Version, entity.Id);
|
||||
var keyDictionary = new Dictionary<int, int>();
|
||||
|
||||
//Add Properties
|
||||
// - don't try to save the property if it doesn't exist (or doesn't have an ID) on the content type
|
||||
// - this can occur if the member type doesn't contain the built-in properties that the
|
||||
// - member object contains.
|
||||
var existingProperties = entity.Properties
|
||||
.Where(property => entity.ContentType.PropertyTypes.Any(x => x.Alias == property.Alias && x.HasIdentity))
|
||||
.ToList();
|
||||
|
||||
var propertyDataDtos = propertyFactory.BuildDto(existingProperties);
|
||||
|
||||
foreach (var propertyDataDto in propertyDataDtos)
|
||||
{
|
||||
if (propertyDataDto.Id > 0)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Specialized;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Configuration.Provider;
|
||||
using System.Linq;
|
||||
using System.Security.Cryptography;
|
||||
@@ -332,6 +333,9 @@ namespace Umbraco.Web.Security.Providers
|
||||
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;
|
||||
@@ -362,7 +366,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
}
|
||||
|
||||
var member = MemberService.GetByUsername(username);
|
||||
var encodedPassword = EncodePassword(password);
|
||||
var encodedPassword = EncryptOrHashPassword(password);
|
||||
|
||||
if (member.Password == encodedPassword)
|
||||
{
|
||||
@@ -429,12 +433,12 @@ namespace Umbraco.Web.Security.Providers
|
||||
var member = MemberService.GetByUsername(username);
|
||||
if (member == null) return false;
|
||||
|
||||
var encodedPassword = EncodePassword(oldPassword);
|
||||
var encodedPassword = EncryptOrHashPassword(oldPassword);
|
||||
|
||||
if (member.Password == encodedPassword)
|
||||
{
|
||||
|
||||
member.Password = EncodePassword(newPassword);
|
||||
member.Password = EncryptOrHashPassword(newPassword);
|
||||
MemberService.Save(member);
|
||||
|
||||
return true;
|
||||
@@ -466,7 +470,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (_requiresQuestionAndAnswer == false || (_requiresQuestionAndAnswer && answer == member.PasswordAnswer))
|
||||
{
|
||||
member.Password =
|
||||
EncodePassword(Membership.GeneratePassword(_minRequiredPasswordLength,
|
||||
EncryptOrHashPassword(Membership.GeneratePassword(_minRequiredPasswordLength,
|
||||
_minRequiredNonAlphanumericCharacters));
|
||||
MemberService.Save(member);
|
||||
}
|
||||
@@ -507,7 +511,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
if (member.IsLockedOut)
|
||||
throw new ProviderException("The member is locked out.");
|
||||
|
||||
var encodedPassword = EncodePassword(password);
|
||||
var encodedPassword = EncryptOrHashPassword(password);
|
||||
|
||||
var authenticated = (encodedPassword == member.Password);
|
||||
|
||||
@@ -725,11 +729,9 @@ namespace Umbraco.Web.Security.Providers
|
||||
|
||||
private bool IsEmaiValid(string email)
|
||||
{
|
||||
const string pattern = @"^(?!\.)(""([^""\r\\]|\\[""\r\\])*""|"
|
||||
+ @"([-a-z0-9!#$%&'*+/=?^_`{|}~]|(?<!\.)\.)*)(?<!\.)"
|
||||
+ @"@[a-z0-9][\w\.-]*[a-z0-9]\.[a-z][a-z\.]*[a-z]$";
|
||||
var validator = new EmailAddressAttribute();
|
||||
|
||||
return Regex.IsMatch(email, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||
return validator.IsValid(email);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -737,7 +739,7 @@ namespace Umbraco.Web.Security.Providers
|
||||
/// </summary>
|
||||
/// <param name="password">The password.</param>
|
||||
/// <returns>The encoded password.</returns>
|
||||
private string EncodePassword(string password)
|
||||
private string EncryptOrHashPassword(string password)
|
||||
{
|
||||
var encodedPassword = password;
|
||||
switch (PasswordFormat)
|
||||
|
||||
@@ -212,6 +212,8 @@ namespace umbraco.cms.businesslogic.member
|
||||
/// <returns>The new member</returns>
|
||||
public static Member MakeNew(string Name, string LoginName, string Email, MemberType mbt, User u)
|
||||
{
|
||||
if (mbt == null) throw new ArgumentNullException("mbt");
|
||||
|
||||
var loginName = (!String.IsNullOrEmpty(LoginName)) ? LoginName : Name;
|
||||
|
||||
if (String.IsNullOrEmpty(loginName))
|
||||
|
||||
@@ -381,7 +381,13 @@ namespace umbraco.providers.members
|
||||
status = MembershipCreateStatus.DuplicateEmail;
|
||||
else
|
||||
{
|
||||
Member m = Member.MakeNew(username, email, MemberType.GetByAlias(m_DefaultMemberTypeAlias), User.GetUser(0));
|
||||
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 =
|
||||
|
||||
Reference in New Issue
Block a user