Fixes tests, removes some magic strings
This commit is contained in:
@@ -102,16 +102,15 @@ namespace Umbraco.Core.Models.PublishedContent
|
||||
// TODO: this list somehow also exists in constants, see memberTypeRepository => remove duplicate!
|
||||
private static readonly Dictionary<string, int> BuiltinMemberProperties = new Dictionary<string, int>
|
||||
{
|
||||
{ "Email", Constants.DataTypes.Textbox },
|
||||
{ "Username", Constants.DataTypes.Textbox },
|
||||
{ "PasswordQuestion", Constants.DataTypes.Textbox },
|
||||
{ "Comments", Constants.DataTypes.Textbox },
|
||||
{ "IsApproved", Constants.DataTypes.Boolean },
|
||||
{ "IsLockedOut", Constants.DataTypes.Boolean },
|
||||
{ "LastLockoutDate", Constants.DataTypes.DateTime },
|
||||
{ "CreateDate", Constants.DataTypes.DateTime },
|
||||
{ "LastLoginDate", Constants.DataTypes.DateTime },
|
||||
{ "LastPasswordChangeDate", Constants.DataTypes.DateTime },
|
||||
{ nameof(IMember.Email), Constants.DataTypes.Textbox },
|
||||
{ nameof(IMember.Username), Constants.DataTypes.Textbox },
|
||||
{ nameof(IMember.Comments), Constants.DataTypes.Textbox },
|
||||
{ nameof(IMember.IsApproved), Constants.DataTypes.Boolean },
|
||||
{ nameof(IMember.IsLockedOut), Constants.DataTypes.Boolean },
|
||||
{ nameof(IMember.LastLockoutDate), Constants.DataTypes.DateTime },
|
||||
{ nameof(IMember.CreateDate), Constants.DataTypes.DateTime },
|
||||
{ nameof(IMember.LastLoginDate), Constants.DataTypes.DateTime },
|
||||
{ nameof(IMember.LastPasswordChangeDate), Constants.DataTypes.DateTime },
|
||||
};
|
||||
|
||||
#region Content type
|
||||
|
||||
@@ -177,7 +177,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.Comments, "Comments", default(string));
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.Comments, nameof(Comments), default(string));
|
||||
if (a.Success == false) return a.Result;
|
||||
|
||||
return Properties[Constants.Conventions.Member.Comments].GetValue() == null
|
||||
@@ -188,7 +188,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.Comments,
|
||||
"Comments") == false) return;
|
||||
nameof(Comments)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.Comments].SetValue(value);
|
||||
}
|
||||
@@ -206,7 +206,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.IsApproved, "IsApproved",
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.IsApproved, nameof(IsApproved),
|
||||
//This is the default value if the prop is not found
|
||||
true);
|
||||
if (a.Success == false) return a.Result;
|
||||
@@ -223,7 +223,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.IsApproved,
|
||||
"IsApproved") == false) return;
|
||||
nameof(IsApproved)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.IsApproved].SetValue(value);
|
||||
}
|
||||
@@ -241,7 +241,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.IsLockedOut, "IsLockedOut", false);
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.IsLockedOut, nameof(IsLockedOut), false);
|
||||
if (a.Success == false) return a.Result;
|
||||
if (Properties[Constants.Conventions.Member.IsLockedOut].GetValue() == null) return false;
|
||||
var tryConvert = Properties[Constants.Conventions.Member.IsLockedOut].GetValue().TryConvertTo<bool>();
|
||||
@@ -256,7 +256,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.IsLockedOut,
|
||||
"IsLockedOut") == false) return;
|
||||
nameof(IsLockedOut)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.IsLockedOut].SetValue(value);
|
||||
}
|
||||
@@ -274,7 +274,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastLoginDate, "LastLoginDate", default(DateTime));
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastLoginDate, nameof(LastLoginDate), default(DateTime));
|
||||
if (a.Success == false) return a.Result;
|
||||
if (Properties[Constants.Conventions.Member.LastLoginDate].GetValue() == null) return default(DateTime);
|
||||
var tryConvert = Properties[Constants.Conventions.Member.LastLoginDate].GetValue().TryConvertTo<DateTime>();
|
||||
@@ -289,7 +289,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.LastLoginDate,
|
||||
"LastLoginDate") == false) return;
|
||||
nameof(LastLoginDate)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.LastLoginDate].SetValue(value);
|
||||
}
|
||||
@@ -307,7 +307,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastPasswordChangeDate, "LastPasswordChangeDate", default(DateTime));
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastPasswordChangeDate, nameof(LastPasswordChangeDate), default(DateTime));
|
||||
if (a.Success == false) return a.Result;
|
||||
if (Properties[Constants.Conventions.Member.LastPasswordChangeDate].GetValue() == null) return default(DateTime);
|
||||
var tryConvert = Properties[Constants.Conventions.Member.LastPasswordChangeDate].GetValue().TryConvertTo<DateTime>();
|
||||
@@ -322,7 +322,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.LastPasswordChangeDate,
|
||||
"LastPasswordChangeDate") == false) return;
|
||||
nameof(LastPasswordChangeDate)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.LastPasswordChangeDate].SetValue(value);
|
||||
}
|
||||
@@ -340,7 +340,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastLockoutDate, "LastLockoutDate", default(DateTime));
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.LastLockoutDate, nameof(LastLockoutDate), default(DateTime));
|
||||
if (a.Success == false) return a.Result;
|
||||
if (Properties[Constants.Conventions.Member.LastLockoutDate].GetValue() == null) return default(DateTime);
|
||||
var tryConvert = Properties[Constants.Conventions.Member.LastLockoutDate].GetValue().TryConvertTo<DateTime>();
|
||||
@@ -355,7 +355,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.LastLockoutDate,
|
||||
"LastLockoutDate") == false) return;
|
||||
nameof(LastLockoutDate)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.LastLockoutDate].SetValue(value);
|
||||
}
|
||||
@@ -374,7 +374,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
get
|
||||
{
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.FailedPasswordAttempts, "FailedPasswordAttempts", 0);
|
||||
var a = WarnIfPropertyTypeNotFoundOnGet(Constants.Conventions.Member.FailedPasswordAttempts, nameof(FailedPasswordAttempts), 0);
|
||||
if (a.Success == false) return a.Result;
|
||||
if (Properties[Constants.Conventions.Member.FailedPasswordAttempts].GetValue() == null) return default(int);
|
||||
var tryConvert = Properties[Constants.Conventions.Member.FailedPasswordAttempts].GetValue().TryConvertTo<int>();
|
||||
@@ -389,7 +389,7 @@ namespace Umbraco.Core.Models
|
||||
{
|
||||
if (WarnIfPropertyTypeNotFoundOnSet(
|
||||
Constants.Conventions.Member.FailedPasswordAttempts,
|
||||
"FailedPasswordAttempts") == false) return;
|
||||
nameof(FailedPasswordAttempts)) == false) return;
|
||||
|
||||
Properties[Constants.Conventions.Member.FailedPasswordAttempts].SetValue(value);
|
||||
}
|
||||
|
||||
@@ -492,6 +492,7 @@ ORDER BY colName";
|
||||
// list the columns to save, NOTE: would be nice to not have hard coded strings here but no real good way around that
|
||||
var colsToSave = new Dictionary<string, string>
|
||||
{
|
||||
//TODO: Change these to constants + nameof
|
||||
{"userDisabled", "IsApproved"},
|
||||
{"userNoConsole", "IsLockedOut"},
|
||||
{"startStructureID", "StartContentId"},
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
<providers>
|
||||
<clear/>
|
||||
<add name="UmbracoMembershipProvider" type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco.Web" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" useLegacyEncoding="false" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed"/>
|
||||
<add name="UsersMembershipProvider" type="Umbraco.Web.Security.Providers.UsersMembershipProvider, Umbraco.Web" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="4" useLegacyEncoding="false" enablePasswordRetrieval="false" enablePasswordReset="false" requiresQuestionAndAnswer="false" passwordFormat="Hashed" allowManuallyChangingPassword="false"/>
|
||||
</providers>
|
||||
</membership>
|
||||
</system.web>
|
||||
|
||||
@@ -73,41 +73,7 @@ namespace Umbraco.Tests.Membership
|
||||
|
||||
Assert.IsNull(user);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Password_Encrypted()
|
||||
{
|
||||
IMember createdMember = null;
|
||||
var memberType = MockedContentTypes.CreateSimpleMemberType();
|
||||
foreach (var p in ConventionsHelper.GetStandardPropertyTypeStubs())
|
||||
{
|
||||
memberType.AddPropertyType(p.Value);
|
||||
}
|
||||
var memberTypeServiceMock = new Mock<IMemberTypeService>();
|
||||
memberTypeServiceMock.Setup(x => x.GetDefault()).Returns("Member");
|
||||
var membershipServiceMock = new Mock<IMembershipMemberService>();
|
||||
membershipServiceMock.Setup(service => service.Exists("test")).Returns(false);
|
||||
membershipServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
|
||||
membershipServiceMock.Setup(
|
||||
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
|
||||
.Callback((string u, string e, string p, string m, bool isApproved) =>
|
||||
{
|
||||
createdMember = new Member("test", e, u, p, memberType, isApproved);
|
||||
})
|
||||
.Returns(() => createdMember);
|
||||
|
||||
var provider = new MembersMembershipProvider(membershipServiceMock.Object, memberTypeServiceMock.Object, TestHelper.GetUmbracoVersion());
|
||||
provider.Initialize("test", new NameValueCollection { { "passwordFormat", "Encrypted" } });
|
||||
|
||||
|
||||
MembershipCreateStatus status;
|
||||
provider.CreateUser("test", "test", "testtest$1", "test@test.com", "test", "test", true, "test", out status);
|
||||
|
||||
Assert.AreNotEqual("test", createdMember.RawPasswordValue);
|
||||
var decrypted = provider.DecryptPassword(createdMember.RawPasswordValue);
|
||||
Assert.AreEqual("testtest$1", decrypted);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void Password_Hashed_With_Salt()
|
||||
{
|
||||
|
||||
@@ -65,33 +65,30 @@ namespace Umbraco.Tests.Services
|
||||
// TODO: see TODO in PublishedContentType, this list contains duplicates
|
||||
|
||||
var aliases = new[]
|
||||
{
|
||||
"umbracoMemberPasswordRetrievalQuestion",
|
||||
"umbracoMemberPasswordRetrievalAnswer",
|
||||
"umbracoMemberComments",
|
||||
"umbracoMemberFailedPasswordAttempts",
|
||||
"umbracoMemberApproved",
|
||||
"umbracoMemberLockedOut",
|
||||
"umbracoMemberLastLockoutDate",
|
||||
"umbracoMemberLastLogin",
|
||||
"umbracoMemberLastPasswordChangeDate",
|
||||
"Email",
|
||||
"Username",
|
||||
"PasswordQuestion",
|
||||
"Comments",
|
||||
"IsApproved",
|
||||
"IsLockedOut",
|
||||
"LastLockoutDate",
|
||||
"CreateDate",
|
||||
"LastLoginDate",
|
||||
"LastPasswordChangeDate"
|
||||
{
|
||||
Constants.Conventions.Member.Comments,
|
||||
Constants.Conventions.Member.FailedPasswordAttempts,
|
||||
Constants.Conventions.Member.IsApproved,
|
||||
Constants.Conventions.Member.IsLockedOut,
|
||||
Constants.Conventions.Member.LastLockoutDate,
|
||||
Constants.Conventions.Member.LastLoginDate,
|
||||
Constants.Conventions.Member.LastPasswordChangeDate,
|
||||
nameof(IMember.Email),
|
||||
nameof(IMember.Username),
|
||||
nameof(IMember.Comments),
|
||||
nameof(IMember.IsApproved),
|
||||
nameof(IMember.IsLockedOut),
|
||||
nameof(IMember.LastLockoutDate),
|
||||
nameof(IMember.CreateDate),
|
||||
nameof(IMember.LastLoginDate),
|
||||
nameof(IMember.LastPasswordChangeDate)
|
||||
};
|
||||
|
||||
var properties = pmember.Properties.ToList();
|
||||
|
||||
Assert.IsTrue(properties.Select(x => x.Alias).ContainsAll(aliases));
|
||||
|
||||
var email = properties[aliases.IndexOf("Email")];
|
||||
var email = properties[aliases.IndexOf(nameof(IMember.Email))];
|
||||
Assert.AreEqual("xemail", email.GetSourceValue());
|
||||
}
|
||||
|
||||
|
||||
@@ -99,12 +99,15 @@ namespace Umbraco.Tests.Testing.TestingTests
|
||||
{
|
||||
var umbracoContext = TestObjects.GetUmbracoContextMock();
|
||||
|
||||
var membershipHelper = new MembershipHelper(umbracoContext.HttpContext, Mock.Of<IPublishedMemberCache>(), Mock.Of<MembersMembershipProvider>(), Mock.Of<RoleProvider>(), Mock.Of<IMemberService>(), Mock.Of<IMemberTypeService>(), Mock.Of<IUserService>(), Mock.Of<IPublicAccessService>(), AppCaches.Disabled, Mock.Of<ILogger>());
|
||||
var logger = Mock.Of<IProfilingLogger>();
|
||||
var memberService = Mock.Of<IMemberService>();
|
||||
var memberTypeService = Mock.Of<IMemberTypeService>();
|
||||
var membershipProvider = new MembersMembershipProvider(memberService, memberTypeService, Mock.Of<IUmbracoVersion>());
|
||||
var membershipHelper = new MembershipHelper(umbracoContext.HttpContext, Mock.Of<IPublishedMemberCache>(), membershipProvider, Mock.Of<RoleProvider>(), memberService, memberTypeService, Mock.Of<IUserService>(), Mock.Of<IPublicAccessService>(), AppCaches.Disabled, logger);
|
||||
var umbracoHelper = new UmbracoHelper(Mock.Of<IPublishedContent>(), Mock.Of<ITagQuery>(), Mock.Of<ICultureDictionaryFactory>(), Mock.Of<IUmbracoComponentRenderer>(), Mock.Of<IPublishedContentQuery>(), membershipHelper);
|
||||
var umbracoMapper = new UmbracoMapper(new MapDefinitionCollection(new[] { Mock.Of<IMapDefinition>() }));
|
||||
|
||||
// ReSharper disable once UnusedVariable
|
||||
var umbracoApiController = new FakeUmbracoApiController(Mock.Of<IGlobalSettings>(), Mock.Of<IUmbracoContextAccessor>(), Mock.Of<ISqlContext>(), ServiceContext.CreatePartial(), AppCaches.NoCache, Mock.Of<IProfilingLogger>(), Mock.Of<IRuntimeState>(), umbracoHelper, umbracoMapper);
|
||||
|
||||
var umbracoApiController = new FakeUmbracoApiController(Mock.Of<IGlobalSettings>(), Mock.Of<IUmbracoContextAccessor>(), Mock.Of<ISqlContext>(), ServiceContext.CreatePartial(), AppCaches.NoCache, logger, Mock.Of<IRuntimeState>(), umbracoHelper, umbracoMapper);
|
||||
|
||||
Assert.Pass();
|
||||
}
|
||||
|
||||
@@ -74,15 +74,15 @@ namespace Umbraco.Web.PublishedCache.NuCache
|
||||
.ToDictionary(x => x.Alias, x => new[] { new PropertyData { Value = x.GetValue(), Culture = string.Empty, Segment = string.Empty } }, StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
// see also PublishedContentType
|
||||
AddIf(contentType, properties, "Email", member.Email);
|
||||
AddIf(contentType, properties, "Username", member.Username);
|
||||
AddIf(contentType, properties, "Comments", member.Comments);
|
||||
AddIf(contentType, properties, "IsApproved", member.IsApproved);
|
||||
AddIf(contentType, properties, "IsLockedOut", member.IsLockedOut);
|
||||
AddIf(contentType, properties, "LastLockoutDate", member.LastLockoutDate);
|
||||
AddIf(contentType, properties, "CreateDate", member.CreateDate);
|
||||
AddIf(contentType, properties, "LastLoginDate", member.LastLoginDate);
|
||||
AddIf(contentType, properties, "LastPasswordChangeDate", member.LastPasswordChangeDate);
|
||||
AddIf(contentType, properties, nameof(IMember.Email), member.Email);
|
||||
AddIf(contentType, properties, nameof(IMember.Username), member.Username);
|
||||
AddIf(contentType, properties, nameof(IMember.Comments), member.Comments);
|
||||
AddIf(contentType, properties, nameof(IMember.IsApproved), member.IsApproved);
|
||||
AddIf(contentType, properties, nameof(IMember.IsLockedOut), member.IsLockedOut);
|
||||
AddIf(contentType, properties, nameof(IMember.LastLockoutDate), member.LastLockoutDate);
|
||||
AddIf(contentType, properties, nameof(IMember.CreateDate), member.CreateDate);
|
||||
AddIf(contentType, properties, nameof(IMember.LastLoginDate), member.LastLoginDate);
|
||||
AddIf(contentType, properties, nameof(IMember.LastPasswordChangeDate), member.LastPasswordChangeDate);
|
||||
|
||||
return properties;
|
||||
}
|
||||
|
||||
@@ -94,15 +94,15 @@ namespace Umbraco.Web.PublishedCache
|
||||
{
|
||||
var aliases = properties.Select(x => x.Alias).ToList();
|
||||
|
||||
EnsureMemberProperty(properties, aliases, "Email", Email);
|
||||
EnsureMemberProperty(properties, aliases, "UserName", UserName);
|
||||
EnsureMemberProperty(properties, aliases, "Comments", Comments);
|
||||
EnsureMemberProperty(properties, aliases, "IsApproved", IsApproved);
|
||||
EnsureMemberProperty(properties, aliases, "IsLockedOut", IsLockedOut);
|
||||
EnsureMemberProperty(properties, aliases, "LastLockoutDate", LastLockoutDate);
|
||||
EnsureMemberProperty(properties, aliases, "CreateDate", CreateDate);
|
||||
EnsureMemberProperty(properties, aliases, "LastLoginDate", LastLoginDate);
|
||||
EnsureMemberProperty(properties, aliases, "LastPasswordChangeDate", LastPasswordChangeDate);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.Email), Email);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.Username), UserName);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.Comments), Comments);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.IsApproved), IsApproved);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.IsLockedOut), IsLockedOut);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.LastLockoutDate), LastLockoutDate);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.CreateDate), CreateDate);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.LastLoginDate), LastLoginDate);
|
||||
EnsureMemberProperty(properties, aliases, nameof(IMember.LastPasswordChangeDate), LastPasswordChangeDate);
|
||||
}
|
||||
|
||||
private void EnsureMemberProperty(List<IPublishedProperty> properties, List<string> aliases, string alias, object value)
|
||||
|
||||
Reference in New Issue
Block a user