diff --git a/src/umbraco.providers/members/MembersMembershipProvider.cs b/src/umbraco.providers/members/MembersMembershipProvider.cs
index aa51e6276c..e6eb61d018 100644
--- a/src/umbraco.providers/members/MembersMembershipProvider.cs
+++ b/src/umbraco.providers/members/MembersMembershipProvider.cs
@@ -849,7 +849,16 @@ namespace umbraco.providers.members
var approveStatus = GetMemberProperty(m, ApprovedPropertyTypeAlias, true);
if (string.IsNullOrEmpty(approveStatus) == false)
{
- bool.TryParse(approveStatus, out isApproved);
+ //try parsing as bool first (just in case)
+ if (bool.TryParse(approveStatus, out isApproved) == false)
+ {
+ int intStatus;
+ //if that fails, try parsing as int (since its normally stored as 0 or 1)
+ if (int.TryParse(approveStatus, out intStatus))
+ {
+ isApproved = intStatus != 0;
+ }
+ }
}
}
}
@@ -1015,4 +1024,32 @@ namespace umbraco.providers.members
#endregion
}
+
+ ///
+ /// Adds some event handling
+ ///
+ public class MembershipEventHandler : ApplicationEventHandler
+ {
+ protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
+ {
+ Member.New += Member_New;
+ }
+
+ void Member_New(Member sender, NewEventArgs e)
+ {
+ //This is a bit of a hack to ensure that the member is approved when created since many people will be using
+ // this old api to create members on the front-end and they need to be approved - which is based on whether or not
+ // the Umbraco membership provider is configured.
+ var provider = Membership.Provider as UmbracoMembershipProvider;
+ if (provider != null)
+ {
+ var approvedField = provider.ApprovedPropertyTypeAlias;
+ var property = sender.getProperty(approvedField);
+ if (property != null)
+ {
+ property.Value = 1;
+ }
+ }
+ }
+ }
}
diff --git a/src/umbraco.providers/umbraco.providers.csproj b/src/umbraco.providers/umbraco.providers.csproj
index 41c1457c7d..8d96f0e181 100644
--- a/src/umbraco.providers/umbraco.providers.csproj
+++ b/src/umbraco.providers/umbraco.providers.csproj
@@ -107,6 +107,10 @@
{C7CB79F0-1C97-4B33-BFA7-00731B579AE2}
umbraco.datalayer
+
+ {511F6D8D-7717-440A-9A57-A507E9A8B27F}
+ umbraco.interfaces
+