Streamlines member and user services CreateMemberWithIdentity to be similar to media/content and not have a raise events flag. Also implements the CreateWithIdentity explicitly

This commit is contained in:
Shannon
2014-03-06 18:07:02 +11:00
parent d0cc93d6a2
commit e7fb6e5beb
6 changed files with 37 additions and 46 deletions

View File

@@ -15,7 +15,7 @@ namespace Umbraco.Core.Services
public interface IMembershipMemberService : IMembershipMemberService<IMember>, IMembershipRoleService<IMember>
{
IMember CreateMember(string username, string email, string password, string memberType);
IMember CreateMemberWithIdentity(string username, string email, string password, IMemberType memberType, bool raiseEvents = true);
IMember CreateMemberWithIdentity(string username, string email, string password, IMemberType memberType);
}
/// <summary>
@@ -47,9 +47,8 @@ namespace Umbraco.Core.Services
/// <param name="email"></param>
/// <param name="password"></param>
/// <param name="memberTypeAlias"></param>
/// <param name="raiseEvents"></param>
/// <returns></returns>
T CreateWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true);
T CreateWithIdentity(string username, string email, string password, string memberTypeAlias);
/// <summary>
/// Gets the member by the provider key

View File

@@ -11,7 +11,7 @@ namespace Umbraco.Core.Services
public interface IMembershipUserService : IMembershipMemberService<IUser>
{
IUser CreateMemberWithIdentity(string username, string email, string password, IUserType userType, bool raiseEvents = true);
IUser CreateUserWithIdentity(string username, string email, string password, IUserType userType);
}
}

View File

@@ -587,19 +587,16 @@ namespace Umbraco.Core.Services
return member;
}
public IMember CreateMemberWithIdentity(string username, string email, string password, IMemberType memberType, bool raiseEvents = true)
public IMember CreateMemberWithIdentity(string username, string email, string password, IMemberType memberType)
{
if (memberType == null) throw new ArgumentNullException("memberType");
var member = new Member(username, email.ToLower().Trim(), username, password, -1, memberType);
if (raiseEvents)
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMember>(member), this))
{
if (Saving.IsRaisedEventCancelled(new SaveEventArgs<IMember>(member), this))
{
member.WasCancelled = true;
return member;
}
member.WasCancelled = true;
return member;
}
var uow = _uowProvider.GetUnitOfWork();
@@ -613,12 +610,12 @@ namespace Umbraco.Core.Services
CreateAndSaveMemberXml(xml, member.Id, uow.Database);
}
if (raiseEvents)
Saved.RaiseEvent(new SaveEventArgs<IMember>(member, false), this);
Saved.RaiseEvent(new SaveEventArgs<IMember>(member, false), this);
Created.RaiseEvent(new NewEventArgs<IMember>(member, false, memberType.Alias, -1), this);
return member;
}
/// <summary>
/// Creates and persists a new Member
/// </summary>
@@ -626,9 +623,8 @@ namespace Umbraco.Core.Services
/// <param name="username"></param>
/// <param name="password"></param>
/// <param name="memberTypeAlias"></param>
/// <param name="raiseEvents"></param>
/// <returns></returns>
public IMember CreateWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true)
IMember IMembershipMemberService<IMember>.CreateWithIdentity(string username, string email, string password, string memberTypeAlias)
{
var uow = _uowProvider.GetUnitOfWork();
IMemberType memberType;
@@ -644,7 +640,7 @@ namespace Umbraco.Core.Services
throw new ArgumentException(string.Format("No MemberType matching the passed in Alias: '{0}' was found", memberTypeAlias));
}
return CreateMemberWithIdentity(username, email, password, memberType, raiseEvents);
return CreateMemberWithIdentity(username, email, password, memberType);
}
/// <summary>

View File

@@ -75,7 +75,7 @@ namespace Umbraco.Core.Services
}
}
public IUser CreateMemberWithIdentity(string username, string email, string password, IUserType userType, bool raiseEvents = true)
public IUser CreateUserWithIdentity(string username, string email, string password, IUserType userType)
{
if (userType == null) throw new ArgumentNullException("userType");
@@ -103,23 +103,19 @@ namespace Umbraco.Core.Services
IsApproved = true
};
if (raiseEvents)
{
if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs<IUser>(user), this))
return user;
}
if (SavingUser.IsRaisedEventCancelled(new SaveEventArgs<IUser>(user), this))
return user;
repository.AddOrUpdate(user);
uow.Commit();
if (raiseEvents)
SavedUser.RaiseEvent(new SaveEventArgs<IUser>(user, false), this);
SavedUser.RaiseEvent(new SaveEventArgs<IUser>(user, false), this);
return user;
}
}
public IUser CreateWithIdentity(string username, string email, string password, string memberTypeAlias, bool raiseEvents = true)
IUser IMembershipMemberService<IUser>.CreateWithIdentity(string username, string email, string password, string memberTypeAlias)
{
var userType = GetUserTypeByAlias(memberTypeAlias);
if (userType == null)
@@ -127,7 +123,7 @@ namespace Umbraco.Core.Services
throw new ArgumentException("The user type " + memberTypeAlias + " could not be resolved");
}
return CreateMemberWithIdentity(username, email, password, userType);
return CreateUserWithIdentity(username, email, password, userType);
}
public IUser GetById(int id)

View File

@@ -94,7 +94,7 @@ namespace Umbraco.Tests.Membership
mServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
mServiceMock.Setup(service => service.GetDefaultMemberType()).Returns("Member");
mServiceMock.Setup(
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback((string u, string e, string p, string m, bool b) =>
{
createdMember = new Member("test", e, u, p, memberType);
@@ -125,7 +125,7 @@ namespace Umbraco.Tests.Membership
mServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
mServiceMock.Setup(service => service.GetDefaultMemberType()).Returns("Member");
mServiceMock.Setup(
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback((string u, string e, string p, string m, bool b) =>
{
createdMember = new Member("test", e, u, p, memberType);
@@ -158,7 +158,7 @@ namespace Umbraco.Tests.Membership
mServiceMock.Setup(service => service.GetByEmail("test@test.com")).Returns(() => null);
mServiceMock.Setup(service => service.GetDefaultMemberType()).Returns("Member");
mServiceMock.Setup(
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<bool>()))
service => service.CreateWithIdentity(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()))
.Callback((string u, string e, string p, string m, bool b) =>
{
createdMember = new Member("test", e, u, p, memberType);

View File

@@ -36,7 +36,7 @@ namespace Umbraco.Tests.Services
// Arrange
var userService = ServiceContext.UserService;
var userType = userService.GetUserTypeByAlias("admin");
var user = ServiceContext.UserService.CreateMemberWithIdentity("test1", "test1@test.com", "123456", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", "123456", userType);
var contentType = MockedContentTypes.CreateSimpleContentType();
ServiceContext.ContentTypeService.Save(contentType);
var content = new[]
@@ -63,7 +63,7 @@ namespace Umbraco.Tests.Services
// Arrange
var userService = ServiceContext.UserService;
var userType = userService.GetUserTypeByAlias("admin");
var user = ServiceContext.UserService.CreateMemberWithIdentity("test1", "test1@test.com", "123456", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", "123456", userType);
var contentType = MockedContentTypes.CreateSimpleContentType();
ServiceContext.ContentTypeService.Save(contentType);
var content = new[]
@@ -97,7 +97,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
ServiceContext.UserService.Delete(user, true);
var deleted = ServiceContext.UserService.GetUserById(user.Id);
@@ -111,7 +111,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
ServiceContext.UserService.Delete(user);
var deleted = ServiceContext.UserService.GetUserById(user.Id);
@@ -125,7 +125,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
Assert.IsTrue(ServiceContext.UserService.Exists("JohnDoe"));
Assert.IsFalse(ServiceContext.UserService.Exists("notFound"));
@@ -136,7 +136,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
Assert.IsNotNull(ServiceContext.UserService.GetByEmail(user.Email));
Assert.IsNull(ServiceContext.UserService.GetByEmail("do@not.find"));
@@ -147,7 +147,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
Assert.IsNotNull(ServiceContext.UserService.GetByUsername(user.Username));
Assert.IsNull(ServiceContext.UserService.GetByUsername("notFound"));
@@ -158,7 +158,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("mydomain\\JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("mydomain\\JohnDoe", "john@umbraco.io", "12345", userType);
Assert.IsNotNull(ServiceContext.UserService.GetByUsername(user.Username));
Assert.IsNull(ServiceContext.UserService.GetByUsername("notFound"));
@@ -169,7 +169,7 @@ namespace Umbraco.Tests.Services
{
var userType = MockedUserType.CreateUserType();
ServiceContext.UserService.SaveUserType(userType);
var user = ServiceContext.UserService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
Assert.IsNotNull(ServiceContext.UserService.GetUserById(user.Id));
Assert.IsNull(ServiceContext.UserService.GetUserById(9876));
@@ -351,7 +351,7 @@ namespace Umbraco.Tests.Services
var userType = userService.GetUserTypeByAlias("admin");
// Act
var membershipUser = userService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
var membershipUser = userService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", "12345", userType);
// Assert
Assert.That(membershipUser.HasIdentity, Is.True);
@@ -374,7 +374,7 @@ namespace Umbraco.Tests.Services
var hash = new HMACSHA1();
hash.Key = Encoding.Unicode.GetBytes(password);
var encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password)));
var membershipUser = userService.CreateMemberWithIdentity("JohnDoe", "john@umbraco.io", encodedPassword, userType);
var membershipUser = userService.CreateUserWithIdentity("JohnDoe", "john@umbraco.io", encodedPassword, userType);
// Assert
Assert.That(membershipUser.HasIdentity, Is.True);
@@ -390,8 +390,8 @@ namespace Umbraco.Tests.Services
{
var userType = ServiceContext.UserService.GetUserTypeByAlias("admin");
var user1 = ServiceContext.UserService.CreateMemberWithIdentity("test1", "test1@test.com", "test1", userType);
var user2 = ServiceContext.UserService.CreateMemberWithIdentity("test2", "test2@test.com", "test2", userType);
var user1 = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", "test1", userType);
var user2 = ServiceContext.UserService.CreateUserWithIdentity("test2", "test2@test.com", "test2", userType);
//adds some allowed sections
user1.AddAllowedSection("test");
@@ -415,7 +415,7 @@ namespace Umbraco.Tests.Services
{
// Arrange
var userType = ServiceContext.UserService.GetUserTypeByAlias("admin");
var user = ServiceContext.UserService.CreateMemberWithIdentity("test1", "test1@test.com", "test1", userType);
var user = ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", "test1", userType);
// Act
@@ -432,7 +432,7 @@ namespace Umbraco.Tests.Services
{
// Arrange
var userType = ServiceContext.UserService.GetUserTypeByAlias("admin");
var user = (IUser)ServiceContext.UserService.CreateMemberWithIdentity("test1", "test1@test.com", "test1", userType);
var user = (IUser)ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", "test1", userType);
// Act
@@ -449,7 +449,7 @@ namespace Umbraco.Tests.Services
{
// Arrange
var userType = ServiceContext.UserService.GetUserTypeByAlias("admin");
var originalUser = (User)ServiceContext.UserService.CreateMemberWithIdentity("test1", "test1@test.com", "test1", userType);
var originalUser = (User)ServiceContext.UserService.CreateUserWithIdentity("test1", "test1@test.com", "test1", userType);
// Act