diff --git a/src/umbraco.providers/members/MembersMembershipProvider.cs b/src/umbraco.providers/members/MembersMembershipProvider.cs
index 7c8fe8e63a..41e4a4bbcc 100644
--- a/src/umbraco.providers/members/MembersMembershipProvider.cs
+++ b/src/umbraco.providers/members/MembersMembershipProvider.cs
@@ -18,8 +18,6 @@ using System.Security.Permissions;
using System.Runtime.CompilerServices;
using Member = umbraco.cms.businesslogic.member.Member;
using MemberType = umbraco.cms.businesslogic.member.MemberType;
-using Umbraco.Core.Models.Membership;
-using User = umbraco.BusinessLogic.User;
#endregion
@@ -452,7 +450,7 @@ namespace umbraco.providers.members
var collection = new MembershipUserCollection();
foreach (var m in byEmail.Skip(pagedResult.SkipSize).Take(pageSize))
{
- collection.Add(m.AsConcreteMembershipUser());
+ collection.Add(ConvertToMembershipUser(m));
}
return collection;
}
@@ -766,7 +764,27 @@ namespace umbraco.providers.members
return null;
}
-
+
+ private static string GetMemberProperty(IMember m, string propertyAlias, bool isBool)
+ {
+ if (!String.IsNullOrEmpty(propertyAlias))
+ {
+ if (m.Properties[propertyAlias] != null &&
+ m.Properties[propertyAlias].Value != null)
+ {
+ if (isBool)
+ {
+ // Umbraco stored true as 1, which means it can be bool.tryParse'd
+ return m.Properties[propertyAlias].Value.ToString().Replace("1", "true").Replace("0", "false");
+ }
+ else
+ return m.Properties[propertyAlias].Value.ToString();
+ }
+ }
+
+ return null;
+ }
+
///
/// Verifies that the specified user name and password exist in the data source.
///
@@ -989,6 +1007,52 @@ namespace umbraco.providers.members
}
}
+ ///
+ /// Converts to membership user.
+ ///
+ /// The m.
+ ///
+ private MembershipUser ConvertToMembershipUser(IMember m)
+ {
+ if (m == null) return null;
+ else
+ {
+ DateTime lastLogin = DateTime.Now;
+ bool isApproved = true;
+ bool isLocked = false;
+ string comment = "";
+ string passwordQuestion = "";
+
+ // last login
+ if (!String.IsNullOrEmpty(m_LastLoginPropertyTypeAlias))
+ {
+ DateTime.TryParse(GetMemberProperty(m, m_LastLoginPropertyTypeAlias, false), out lastLogin);
+ }
+ // approved
+ if (!String.IsNullOrEmpty(m_ApprovedPropertyTypeAlias))
+ {
+ bool.TryParse(GetMemberProperty(m, m_ApprovedPropertyTypeAlias, true), out isApproved);
+ }
+ // locked
+ if (!String.IsNullOrEmpty(m_LockPropertyTypeAlias))
+ {
+ bool.TryParse(GetMemberProperty(m, m_LockPropertyTypeAlias, true), out isLocked);
+ }
+ // comment
+ if (!String.IsNullOrEmpty(m_CommentPropertyTypeAlias))
+ {
+ comment = GetMemberProperty(m, m_CommentPropertyTypeAlias, false);
+ }
+ // password question
+ if (!String.IsNullOrEmpty(m_PasswordRetrievalQuestionPropertyTypeAlias))
+ {
+ passwordQuestion = GetMemberProperty(m, m_PasswordRetrievalQuestionPropertyTypeAlias, false);
+ }
+
+ return new MembershipUser(m_providerName, m.Username, m.Id, m.Email, passwordQuestion, comment, isApproved, isLocked, m.CreateDate, lastLogin,
+ DateTime.Now, DateTime.Now, DateTime.Now);
+ }
+ }
#endregion
}
}