diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
index 93719e29e3..33d3f6cab8 100644
--- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IUserRepository.cs
@@ -7,6 +7,11 @@ namespace Umbraco.Core.Persistence.Repositories
IProfile GetProfileById(int id);
IProfile GetProfileByUserName(string username);
IUser GetUserByUserName(string username);
- IUser GetUserById(int id);
+
+ ///
+ /// This is useful when an entire section is removed from config
+ ///
+ ///
+ void DeleteSectionFromAllUsers(string sectionAlias);
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
index c9b067c388..4c4843a78e 100644
--- a/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/UserRepository.cs
@@ -227,46 +227,13 @@ namespace Umbraco.Core.Persistence.Repositories
public IUser GetUserByUserName(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 User(_userTypeRepository.Get(dto.Type))
- {
- Id = dto.Id,
- Email = dto.Email,
- Language = dto.UserLanguage,
- Name = dto.UserName,
- NoConsole = dto.NoConsole,
- IsLockedOut = dto.Disabled
- };
-
+ var query = Query.Builder.Where(x => x.Username == username);
+ return GetByQuery(query).FirstOrDefault();
}
-
- public IUser GetUserById(int id)
+
+ public void DeleteSectionFromAllUsers(string sectionAlias)
{
- var sql = GetBaseQuery(false);
- sql.Where(GetBaseWhereClause(), new { Id = id });
-
- var dto = Database.FirstOrDefault(sql);
-
- if (dto == null)
- return null;
-
- return new User(_userTypeRepository.Get(dto.Type))
- {
- Id = dto.Id,
- Email = dto.Email,
- Language = dto.UserLanguage,
- Name = dto.UserName,
- NoConsole = dto.NoConsole,
- IsLockedOut = dto.Disabled
- };
-
+ throw new NotImplementedException();
}
#endregion
diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs
index 9f01142050..7836abbcdc 100644
--- a/src/Umbraco.Core/Services/UserService.cs
+++ b/src/Umbraco.Core/Services/UserService.cs
@@ -66,7 +66,7 @@ namespace Umbraco.Core.Services
{
using (var repository = _repositoryFactory.CreateUserRepository(_uowProvider.GetUnitOfWork()))
{
- return repository.GetUserById(id);
+ return repository.Get(id);
}
}
diff --git a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
index 65ce5e9ec5..0e68e2fcad 100644
--- a/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
+++ b/src/Umbraco.Tests/Persistence/Repositories/UserRepositoryTest.cs
@@ -188,21 +188,7 @@ namespace Umbraco.Tests.Persistence.Repositories
var updatedItem = repository.Get((int)user.Id);
// Assert
- Assert.That(updatedItem.Id, Is.EqualTo(user.Id));
- Assert.That(updatedItem.Name, Is.EqualTo(user.Name));
- Assert.That(updatedItem.Permissions, Is.EqualTo(user.Permissions));
- Assert.That(updatedItem.Language, Is.EqualTo(user.Language));
- Assert.That(updatedItem.IsApproved, Is.EqualTo(user.IsApproved));
- Assert.That(updatedItem.Password, Is.EqualTo(user.Password));
- Assert.That(updatedItem.NoConsole, Is.EqualTo(user.NoConsole));
- Assert.That(updatedItem.StartContentId, Is.EqualTo(user.StartContentId));
- Assert.That(updatedItem.StartMediaId, Is.EqualTo(user.StartMediaId));
- Assert.That(updatedItem.DefaultToLiveEditing, Is.EqualTo(user.DefaultToLiveEditing));
- Assert.That(updatedItem.Email, Is.EqualTo(user.Email));
- Assert.That(updatedItem.Username, Is.EqualTo(user.Username));
- Assert.That(updatedItem.AllowedSections.Count(), Is.EqualTo(2));
- Assert.IsTrue(updatedItem.AllowedSections.Contains("media"));
- Assert.IsTrue(updatedItem.AllowedSections.Contains("content"));
+ AssertPropertyValues(updatedItem, user);
}
[Test]
@@ -388,6 +374,90 @@ namespace Umbraco.Tests.Persistence.Repositories
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);
+ }
+
+ private void AssertPropertyValues(IUser updatedItem, IUser originalUser)
+ {
+ 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(2));
+ Assert.IsTrue(updatedItem.AllowedSections.Contains("media"));
+ Assert.IsTrue(updatedItem.AllowedSections.Contains("content"));
+ }
+
private IUser[] CreateAndCommitMultipleUsers(IUserRepository repository, IUnitOfWork unitOfWork)
{
var user1 = MockedUser.CreateUser(CreateAndCommitUserType(), "1");