Updated IUserService and added more unit tests for new methods. Fixed unit tests that were failing due to incorrectly set settings... not sure how this is working on the server but oh well.

This commit is contained in:
Shannon
2013-07-03 19:01:37 +10:00
parent d67480e98b
commit d3b69e04e1
13 changed files with 230 additions and 44 deletions

View File

@@ -1,6 +1,8 @@
using System;
using System.Globalization;
using System.Linq;
using Umbraco.Core.Events;
using Umbraco.Core.Models;
using Umbraco.Core.Models.Membership;
using Umbraco.Core.Models.Rdbms;
using Umbraco.Core.Persistence;
@@ -101,6 +103,45 @@ namespace Umbraco.Core.Services
}
}
/// <summary>
/// Savers changes to a user to the database
/// </summary>
/// <param name="user"></param>
public void SaveUser(IUser user)
{
if (UserSaving.IsRaisedEventCancelled(new SaveEventArgs<IUser>(user), this))
return;
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateUserRepository(uow))
{
repository.AddOrUpdate(user);
uow.Commit();
}
UserSaved.RaiseEvent(new SaveEventArgs<IUser>(user, false), this);
}
/// <summary>
/// This is useful for when a section is removed from config
/// </summary>
/// <param name="sectionAlias"></param>
public void DeleteSectionFromAllUsers(string sectionAlias)
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateUserRepository(uow))
{
var assignedUsers = repository.GetUsersAssignedToSection(sectionAlias);
foreach (var user in assignedUsers)
{
//now remove the section for each user and commit
user.RemoveAllowedSection(sectionAlias);
repository.AddOrUpdate(user);
}
uow.Commit();
}
}
/// <summary>
/// Creates a new user for logging into the umbraco backoffice
/// </summary>
@@ -110,7 +151,7 @@ namespace Umbraco.Core.Services
/// <param name="userType"></param>
/// <param name="email"></param>
/// <returns></returns>
public IMembershipUser CreateUser(string name, string login, string password, IUserType userType, string email = "")
public IMembershipUser CreateMembershipUser(string name, string login, string password, IUserType userType, string email = "")
{
var uow = _uowProvider.GetUnitOfWork();
using (var repository = _repositoryFactory.CreateUserRepository(uow))
@@ -142,5 +183,15 @@ namespace Umbraco.Core.Services
}
#endregion
/// <summary>
/// Occurs before Save
/// </summary>
public static event TypedEventHandler<IUserService, SaveEventArgs<IUser>> UserSaving;
/// <summary>
/// Occurs after Save
/// </summary>
public static event TypedEventHandler<IUserService, SaveEventArgs<IUser>> UserSaved;
}
}