Merge remote-tracking branch 'origin/6.2.0' into 7.1.0

Conflicts:
	src/Umbraco.Core/Models/Member.cs
	src/Umbraco.Core/Models/Membership/MembershipUserExtensions.cs
	src/Umbraco.Core/Persistence/Factories/MemberFactory.cs
	src/Umbraco.Core/Persistence/Factories/MemberReadOnlyFactory.cs
	src/Umbraco.Core/Persistence/Mappers/MemberMapper.cs
	src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs
	src/Umbraco.Core/Services/IMembershipUserService.cs
	src/Umbraco.Core/Services/UserService.cs
	src/Umbraco.Tests/Persistence/Repositories/MemberRepositoryTest.cs
	src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
	src/Umbraco.Tests/Services/ContentServiceTests.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedMember.cs
	src/Umbraco.Tests/TestHelpers/Entities/MockedUser.cs
	src/Umbraco.Web.UI/install/steps/DefaultUser.ascx.cs
	src/Umbraco.Web/Controllers/UmbProfileController.cs
	src/Umbraco.Web/Routing/PublishedContentRequestEngine.cs
	src/Umbraco.Web/Security/WebSecurity.cs
	src/Umbraco.Web/umbraco.presentation/LegacyClasses.cs
	src/Umbraco.Web/umbraco.presentation/install/steps/LegacyClasses.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/channels/UmbracoMetaWeblogAPI.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/member.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/memberTasks.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/create/userTasks.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/dashboard/ChangePassword.ascx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/login.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/members/EditMember.aspx.cs
	src/Umbraco.Web/umbraco.presentation/umbraco/webservices/MediaUploader.ashx.cs
This commit is contained in:
Shannon
2014-03-18 18:47:49 +11:00
49 changed files with 1189 additions and 780 deletions

View File

@@ -1,8 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Web;
using System.Web.Hosting;
using System.Web.Security;
using Umbraco.Core.Security;
@@ -10,6 +14,79 @@ namespace Umbraco.Core.Security
{
internal static class MembershipProviderExtensions
{
public static MembershipUserCollection FindUsersByName(this MembershipProvider provider, string usernameToMatch)
{
int totalRecords = 0;
return provider.FindUsersByName(usernameToMatch, 0, int.MaxValue, out totalRecords);
}
public static MembershipUserCollection FindUsersByEmail(this MembershipProvider provider, string emailToMatch)
{
int totalRecords = 0;
return provider.FindUsersByEmail(emailToMatch, 0, int.MaxValue, out totalRecords);
}
public static MembershipUser CreateUser(this MembershipProvider provider, string username, string password, string email)
{
MembershipCreateStatus status;
var user = provider.CreateUser(username, password, email, null, null, true, null, out status);
if (user == null)
throw new MembershipCreateUserException(status);
return user;
}
/// <summary>
/// Method to get the Umbraco Members membership provider based on it's alias
/// </summary>
/// <returns></returns>
public static MembershipProvider GetMembersMembershipProvider()
{
if (Membership.Providers[Constants.Conventions.Member.UmbracoMemberProviderName] == null)
{
throw new InvalidOperationException("No membership provider found with name " + Constants.Conventions.Member.UmbracoMemberProviderName);
}
return Membership.Providers[Constants.Conventions.Member.UmbracoMemberProviderName];
}
/// <summary>
/// Method to get the Umbraco Users membership provider based on it's alias
/// </summary>
/// <returns></returns>
public static MembershipProvider GetUsersMembershipProvider()
{
if (Membership.Providers[Constants.Conventions.User.UmbracoUsersProviderName] == null)
{
throw new InvalidOperationException("No membership provider found with name " + Constants.Conventions.User.UmbracoUsersProviderName);
}
return Membership.Providers[Constants.Conventions.User.UmbracoUsersProviderName];
}
public static MembershipUser GetCurrentUser(this MembershipProvider membershipProvider)
{
var username = membershipProvider.GetCurrentUserName();
return membershipProvider.GetUser(username, true);
}
/// <summary>
/// Just returns the current user's login name (just a wrapper).
/// </summary>
/// <param name="membershipProvider"></param>
/// <returns></returns>
public static string GetCurrentUserName(this MembershipProvider membershipProvider)
{
if (HostingEnvironment.IsHosted)
{
HttpContext current = HttpContext.Current;
if (current != null)
return current.User.Identity.Name;
}
IPrincipal currentPrincipal = Thread.CurrentPrincipal;
if (currentPrincipal == null || currentPrincipal.Identity == null)
return string.Empty;
else
return currentPrincipal.Identity.Name;
}
/// <summary>
/// Returns true if the provider specified is a built-in Umbraco users provider
/// </summary>