diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs index 9355e1cdc2..901992a662 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs @@ -5,9 +5,9 @@ namespace Umbraco.Core.Persistence.Repositories { internal interface IUserRepository : IRepositoryQueryable { - IProfile GetProfileById(int id); - IProfile GetProfileByUserName(string username); - IUser GetUserByUserName(string username); + //IProfile GetProfileById(int id); + //IProfile GetProfileByUserName(string username); + //IUser GetUserByUserName(string username); /// /// This is useful when an entire section is removed from config diff --git a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs index 032b0e9bf5..cd10d4e6a4 100644 --- a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs @@ -196,39 +196,7 @@ namespace Umbraco.Core.Persistence.Repositories #endregion #region Implementation of IUserRepository - - public IProfile GetProfileById(int id) - { - var sql = GetBaseQuery(false); - sql.Where(GetBaseWhereClause(), new { Id = id }); - - var dto = Database.FirstOrDefault(sql); - - if (dto == null) - return null; - - return new Profile(dto.Id, dto.UserName); - } - - public IProfile GetProfileByUserName(string username) - { - var sql = GetBaseQuery(false); - sql.Where("umbracoUser.userLogin = @Username", new { Username = username }); - - var dto = Database.FirstOrDefault(sql); - - if (dto == null) - return null; - - return new Profile(dto.Id, dto.UserName); - } - - public IUser GetUserByUserName(string username) - { - var query = Query.Builder.Where(x => x.Username == username); - return GetByQuery(query).FirstOrDefault(); - } - + public IEnumerable GetUsersAssignedToSection(string sectionAlias) { //Here we're building up a query that looks like this, a sub query is required because the resulting structure diff --git a/src/Umbraco.Core/Persistence/Repositories/UserTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserTypeRepository.cs index 7d459eb2b2..17481c7ea3 100644 --- a/src/Umbraco.Core/Persistence/Repositories/UserTypeRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/UserTypeRepository.cs @@ -32,7 +32,7 @@ namespace Umbraco.Core.Persistence.Repositories var sql = GetBaseQuery(false); sql.Where(GetBaseWhereClause(), new { Id = id }); - var dto = Database.Query(sql).FirstOrDefault(); + var dto = Database.FirstOrDefault(sql); if (dto == null) return null; diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index d8fa8f1672..f7bbe244bb 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -42,25 +42,22 @@ namespace Umbraco.Core.Services /// public IProfile GetProfileById(int id) { - using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork())) - { - return repository.GetProfileById(id); - } + var user = GetUserById(id); + return new Profile(user.Id, user.Username); } public IProfile GetProfileByUserName(string username) { - using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork())) - { - return repository.GetProfileByUserName(username); - } + var user = GetUserByUserName(username); + return new Profile(user.Id, user.Username); } public IUser GetUserByUserName(string username) { using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork())) { - return repository.GetUserByUserName(username); + var query = Query.Builder.Where(x => x.Username == username); + return repository.GetByQuery(query).FirstOrDefault(); } } diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs index 9476cc76bf..76d21e1d56 100644 --- a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs +++ b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs @@ -373,71 +373,7 @@ namespace Umbraco.Tests.Persistence.Repositories Assert.IsTrue(result.AllowedSections.Contains("settings")); Assert.IsTrue(result.AllowedSections.Contains("media")); } - - [Test] - public void Get_By_Profile_Id() - { - // Arrange - var provider = new PetaPocoUnitOfWorkProvider(); - var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user = MockedUser.CreateUser(CreateAndCommitUserType()); - repository.AddOrUpdate(user); - unitOfWork.Commit(); - - // Act - - var profile = repository.GetProfileById((int)user.Id); - unitOfWork.Commit(); - - // Assert - Assert.IsNotNull(profile); - Assert.AreEqual(user.Username, profile.Name); - Assert.AreEqual(user.Id, profile.Id); - } - - [Test] - public void Get_By_Profile_Username() - { - // Arrange - var provider = new PetaPocoUnitOfWorkProvider(); - var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user = MockedUser.CreateUser(CreateAndCommitUserType()); - repository.AddOrUpdate(user); - unitOfWork.Commit(); - - // Act - - var profile = repository.GetProfileByUserName(user.Username); - unitOfWork.Commit(); - - // Assert - Assert.IsNotNull(profile); - Assert.AreEqual(user.Username, profile.Name); - Assert.AreEqual(user.Id, profile.Id); - } - - [Test] - public void Get_User_By_Username() - { - // Arrange - var provider = new PetaPocoUnitOfWorkProvider(); - var unitOfWork = provider.GetUnitOfWork(); - var repository = RepositoryResolver.Current.ResolveByType(unitOfWork); - var user = MockedUser.CreateUser(CreateAndCommitUserType()); - repository.AddOrUpdate(user); - unitOfWork.Commit(); - - // Act - - var userByUsername = repository.GetUserByUserName(user.Username); - unitOfWork.Commit(); - - // Assert - Assert.IsNotNull(userByUsername); - AssertPropertyValues(userByUsername, user); - } + [Test] public void Get_Users_Assigned_To_Section() diff --git a/src/Umbraco.Tests/Services/UserServiceTests.cs b/src/Umbraco.Tests/Services/UserServiceTests.cs index 245e404f7d..6da5002436 100644 --- a/src/Umbraco.Tests/Services/UserServiceTests.cs +++ b/src/Umbraco.Tests/Services/UserServiceTests.cs @@ -90,5 +90,67 @@ namespace Umbraco.Tests.Services Assert.IsFalse(result2.AllowedSections.Contains("test")); } + + [Test] + public void Get_By_Profile_Username() + { + // Arrange + var userType = ServiceContext.UserService.GetUserTypeByAlias("admin"); + var user = (IUser)ServiceContext.UserService.CreateMembershipUser("test1", "test1", "test1", userType, "test1@test.com"); + + // Act + + var profile = ServiceContext.UserService.GetProfileByUserName(user.Username); + + // Assert + Assert.IsNotNull(profile); + Assert.AreEqual(user.Username, profile.Name); + Assert.AreEqual(user.Id, profile.Id); + } + + [Test] + public void Get_By_Profile_Id() + { + // Arrange + var userType = ServiceContext.UserService.GetUserTypeByAlias("admin"); + var user = (IUser)ServiceContext.UserService.CreateMembershipUser("test1", "test1", "test1", userType, "test1@test.com"); + + // Act + + var profile = ServiceContext.UserService.GetProfileById((int)user.Id); + + // Assert + Assert.IsNotNull(profile); + Assert.AreEqual(user.Username, profile.Name); + Assert.AreEqual(user.Id, profile.Id); + } + + [Test] + public void Get_User_By_Username() + { + // Arrange + var userType = ServiceContext.UserService.GetUserTypeByAlias("admin"); + var originalUser = (IUser)ServiceContext.UserService.CreateMembershipUser("test1", "test1", "test1", userType, "test1@test.com"); + + // Act + + var updatedItem = ServiceContext.UserService.GetUserByUserName(originalUser.Username); + + // Assert + Assert.IsNotNull(updatedItem); + Assert.That(updatedItem.Id, Is.EqualTo(originalUser.Id)); + Assert.That(updatedItem.Name, Is.EqualTo(originalUser.Name)); + Assert.That(updatedItem.Permissions, Is.EqualTo(originalUser.Permissions)); + Assert.That(updatedItem.Language, Is.EqualTo(originalUser.Language)); + Assert.That(updatedItem.IsApproved, Is.EqualTo(originalUser.IsApproved)); + Assert.That(updatedItem.Password, Is.EqualTo(originalUser.Password)); + Assert.That(updatedItem.NoConsole, Is.EqualTo(originalUser.NoConsole)); + Assert.That(updatedItem.StartContentId, Is.EqualTo(originalUser.StartContentId)); + Assert.That(updatedItem.StartMediaId, Is.EqualTo(originalUser.StartMediaId)); + Assert.That(updatedItem.DefaultToLiveEditing, Is.EqualTo(originalUser.DefaultToLiveEditing)); + Assert.That(updatedItem.Email, Is.EqualTo(originalUser.Email)); + Assert.That(updatedItem.Username, Is.EqualTo(originalUser.Username)); + Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(0)); + } } } \ No newline at end of file