diff --git a/src/Umbraco.Tests/Membership/DynamicMemberContentTests.cs b/src/Umbraco.Tests/Membership/DynamicMemberContentTests.cs index 6f32a16aaf..4c1272550d 100644 --- a/src/Umbraco.Tests/Membership/DynamicMemberContentTests.cs +++ b/src/Umbraco.Tests/Membership/DynamicMemberContentTests.cs @@ -51,24 +51,20 @@ namespace Umbraco.Tests.Membership { var date = DateTime.Now; - var m = Mock.Of( - user => user.UserName == "test username" - && user.Comment == "test comment" - && user.IsApproved == true - && user.IsLockedOut == false - && user.CreationDate == date - && user.Email == "test@email.com" - && user.LastActivityDate == date.AddMinutes(1) - && user.LastLockoutDate == date.AddMinutes(2) - && user.LastLoginDate == date.AddMinutes(3) - && user.LastPasswordChangedDate == date.AddMinutes(4) - && user.PasswordQuestion == "test question"); + var member = new Member("test name", "test@email.com", "test username", "test password", + GetMemberType()); + member.Comments = "test comment"; + member.IsApproved = true; + member.IsLockedOut = false; + member.CreateDate = date; + member.LastLoginDate = date.AddMinutes(1); + member.LastLockoutDate = date.AddMinutes(2); + //NOTE: Last activity date is always the same as last login date since we don't have a place to store that data + //member.LastLoginDate = date.AddMinutes(3); + member.LastPasswordChangeDate = date.AddMinutes(4); + member.PasswordQuestion = "test question"; - - var mpc = new MemberPublishedContent( - new Member("test name", "test@email.com", "test username", "test password", - Mock.Of(type => type.Alias == "Member")), - m); + var mpc = new MemberPublishedContent(member); var d = mpc.AsDynamic(); @@ -79,7 +75,7 @@ namespace Umbraco.Tests.Membership Assert.AreEqual(false, d.IsLockedOut); Assert.AreEqual(date.AddMinutes(1), d.LastActivityDate); Assert.AreEqual(date.AddMinutes(2), d.LastLockoutDate); - Assert.AreEqual(date.AddMinutes(3), d.LastLoginDate); + Assert.AreEqual(date.AddMinutes(1), d.LastLoginDate); Assert.AreEqual(date.AddMinutes(4), d.LastPasswordChangedDate); Assert.AreEqual("test name", d.Name); Assert.AreEqual("test question", d.PasswordQuestion); @@ -92,24 +88,20 @@ namespace Umbraco.Tests.Membership { var date = DateTime.Now; - var m = Mock.Of( - user => user.UserName == "test username" - && user.Comment == "test comment" - && user.IsApproved == true - && user.IsLockedOut == false - && user.CreationDate == date - && user.Email == "test@email.com" - && user.LastActivityDate == date.AddMinutes(1) - && user.LastLockoutDate == date.AddMinutes(2) - && user.LastLoginDate == date.AddMinutes(3) - && user.LastPasswordChangedDate == date.AddMinutes(4) - && user.PasswordQuestion == "test question"); + var member = new Member("test name", "test@email.com", "test username", "test password", + GetMemberType()); + member.Comments = "test comment"; + member.IsApproved = true; + member.IsLockedOut = false; + member.CreateDate = date; + member.LastLoginDate = date.AddMinutes(1); + member.LastLockoutDate = date.AddMinutes(2); + //NOTE: Last activity date is always the same as last login date since we don't have a place to store that data + //member.LastLoginDate = date.AddMinutes(3); + member.LastPasswordChangeDate = date.AddMinutes(4); + member.PasswordQuestion = "test question"; - - var mpc = new MemberPublishedContent( - new Member("test name", "test@email.com", "test username", "test password", - Mock.Of(type => type.Alias == "Member")) , - m); + var mpc = new MemberPublishedContent(member); var d = mpc.AsDynamic(); @@ -120,7 +112,7 @@ namespace Umbraco.Tests.Membership Assert.AreEqual(false, d.isLockedOut); Assert.AreEqual(date.AddMinutes(1), d.lastActivityDate); Assert.AreEqual(date.AddMinutes(2), d.lastLockoutDate); - Assert.AreEqual(date.AddMinutes(3), d.lastLoginDate); + Assert.AreEqual(date.AddMinutes(1), d.lastLoginDate); Assert.AreEqual(date.AddMinutes(4), d.lastPasswordChangedDate); Assert.AreEqual("test name", d.name); Assert.AreEqual("test question", d.passwordQuestion); @@ -133,25 +125,23 @@ namespace Umbraco.Tests.Membership { var date = DateTime.Now; - var m = Mock.Of( - user => user.UserName == "test username" - && user.Comment == "test comment" - && user.IsApproved == true - && user.IsLockedOut == false - && user.CreationDate == date - && user.Email == "test@email.com" - && user.LastActivityDate == date.AddMinutes(1) - && user.LastLockoutDate == date.AddMinutes(2) - && user.LastLoginDate == date.AddMinutes(3) - && user.LastPasswordChangedDate == date.AddMinutes(4) - && user.PasswordQuestion == "test question"); - var memberType = MockedContentTypes.CreateSimpleMemberType("Member", "Member"); var member = MockedMember.CreateSimpleMember(memberType, "test name", "test@email.com", "test password", "test username"); + member.Comments = "test comment"; + member.IsApproved = true; + member.IsLockedOut = false; + member.CreateDate = date; + member.LastLoginDate = date.AddMinutes(1); + member.LastLockoutDate = date.AddMinutes(2); + //NOTE: Last activity date is always the same as last login date since we don't have a place to store that data + //member.LastLoginDate = date.AddMinutes(3); + member.LastPasswordChangeDate = date.AddMinutes(4); + member.PasswordQuestion = "test question"; + member.Properties["title"].Value = "Test Value 1"; member.Properties["bodyText"].Value = "Test Value 2"; member.Properties["author"].Value = "Test Value 3"; - var mpc = new MemberPublishedContent(member, m); + var mpc = new MemberPublishedContent(member); var d = mpc.AsDynamic(); @@ -165,6 +155,21 @@ namespace Umbraco.Tests.Membership } + private IMemberType GetMemberType() + { + var entity = new MemberType(-1) + { + Alias = "Member" + }; + + entity.AddPropertyGroup(Umbraco.Core.Constants.Conventions.Member.StandardPropertiesGroupName); + var standardPropertyTypes = Umbraco.Core.Constants.Conventions.Member.GetStandardPropertyTypeStubs(); + foreach (var standardPropertyType in standardPropertyTypes) + { + entity.AddPropertyType(standardPropertyType.Value, Umbraco.Core.Constants.Conventions.Member.StandardPropertiesGroupName); + } + return entity; + } } } diff --git a/src/Umbraco.Web/PublishedCache/MemberPublishedContent.cs b/src/Umbraco.Web/PublishedCache/MemberPublishedContent.cs index 227ee905b9..b1270d89ed 100644 --- a/src/Umbraco.Web/PublishedCache/MemberPublishedContent.cs +++ b/src/Umbraco.Web/PublishedCache/MemberPublishedContent.cs @@ -5,6 +5,7 @@ using System.Text; using System.Web.Security; using Umbraco.Core; using Umbraco.Core.Models; +using Umbraco.Core.Models.Membership; using Umbraco.Core.Models.PublishedContent; using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; @@ -19,17 +20,16 @@ namespace Umbraco.Web.PublishedCache { private readonly IMember _member; - private readonly MembershipUser _membershipUser; + private readonly IMembershipUser _membershipUser; private readonly IPublishedProperty[] _properties; private readonly PublishedContentType _publishedMemberType; - public MemberPublishedContent(IMember member, MembershipUser membershipUser) + public MemberPublishedContent(IMember member) { - if (member == null) throw new ArgumentNullException("member"); - if (membershipUser == null) throw new ArgumentNullException("membershipUser"); + if (member == null) throw new ArgumentNullException("member"); _member = member; - _membershipUser = membershipUser; + _membershipUser = member; _publishedMemberType = PublishedContentType.Get(PublishedItemType.Member, _member.ContentTypeAlias); if (_publishedMemberType == null) { @@ -49,7 +49,7 @@ namespace Umbraco.Web.PublishedCache } public string UserName { - get { return _membershipUser.UserName; } + get { return _membershipUser.Username; } } public string PasswordQuestion { @@ -57,7 +57,7 @@ namespace Umbraco.Web.PublishedCache } public string Comments { - get { return _membershipUser.Comment; } + get { return _membershipUser.Comments; } } public bool IsApproved { @@ -73,7 +73,7 @@ namespace Umbraco.Web.PublishedCache } public DateTime CreationDate { - get { return _membershipUser.CreationDate; } + get { return _membershipUser.CreateDate; } } public DateTime LastLoginDate { @@ -81,11 +81,11 @@ namespace Umbraco.Web.PublishedCache } public DateTime LastActivityDate { - get { return _membershipUser.LastActivityDate; } + get { return _membershipUser.LastLoginDate; } } public DateTime LastPasswordChangedDate { - get { return _membershipUser.LastPasswordChangedDate; } + get { return _membershipUser.LastPasswordChangeDate; } } #endregion diff --git a/src/Umbraco.Web/Security/MembershipHelper.cs b/src/Umbraco.Web/Security/MembershipHelper.cs index 5146b48141..6d191c5ef0 100644 --- a/src/Umbraco.Web/Security/MembershipHelper.cs +++ b/src/Umbraco.Web/Security/MembershipHelper.cs @@ -225,7 +225,7 @@ namespace Umbraco.Web.Security } var result = _applicationContext.Services.MemberService.GetByProviderKey(key); - return result == null ? null : new MemberPublishedContent(result, provider.GetUser(result.Username, false)); + return result == null ? null : new MemberPublishedContent(result); } public IPublishedContent GetById(int memberId) @@ -237,7 +237,7 @@ namespace Umbraco.Web.Security } var result = _applicationContext.Services.MemberService.GetById(memberId); - return result == null ? null : new MemberPublishedContent(result, provider.GetUser(result.Username, false)); + return result == null ? null : new MemberPublishedContent(result); } public IPublishedContent GetByUsername(string username) @@ -249,7 +249,7 @@ namespace Umbraco.Web.Security } var result = _applicationContext.Services.MemberService.GetByUsername(username); - return result == null ? null : new MemberPublishedContent(result, provider.GetUser(result.Username, false)); + return result == null ? null : new MemberPublishedContent(result); } public IPublishedContent GetByEmail(string email) @@ -261,7 +261,7 @@ namespace Umbraco.Web.Security } var result = _applicationContext.Services.MemberService.GetByEmail(email); - return result == null ? null : new MemberPublishedContent(result, provider.GetUser(result.Username, false)); + return result == null ? null : new MemberPublishedContent(result); } /// @@ -276,7 +276,7 @@ namespace Umbraco.Web.Security } var result = GetCurrentPersistedMember(); var provider = MPE.GetMembersMembershipProvider(); - return result == null ? null : new MemberPublishedContent(result, provider.GetUser(result.Username, true)); + return result == null ? null : new MemberPublishedContent(result); } ///