Updated UserRepository to not contain the general query methods, we do those in the service.
This commit is contained in:
@@ -5,9 +5,9 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
{
|
||||
internal interface IUserRepository : IRepositoryQueryable<int, IUser>
|
||||
{
|
||||
IProfile GetProfileById(int id);
|
||||
IProfile GetProfileByUserName(string username);
|
||||
IUser GetUserByUserName(string username);
|
||||
//IProfile GetProfileById(int id);
|
||||
//IProfile GetProfileByUserName(string username);
|
||||
//IUser GetUserByUserName(string username);
|
||||
|
||||
/// <summary>
|
||||
/// This is useful when an entire section is removed from config
|
||||
|
||||
@@ -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<UserDto>(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<UserDto>(sql);
|
||||
|
||||
if (dto == null)
|
||||
return null;
|
||||
|
||||
return new Profile(dto.Id, dto.UserName);
|
||||
}
|
||||
|
||||
public IUser GetUserByUserName(string username)
|
||||
{
|
||||
var query = Query<IUser>.Builder.Where(x => x.Username == username);
|
||||
return GetByQuery(query).FirstOrDefault();
|
||||
}
|
||||
|
||||
|
||||
public IEnumerable<IUser> GetUsersAssignedToSection(string sectionAlias)
|
||||
{
|
||||
//Here we're building up a query that looks like this, a sub query is required because the resulting structure
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace Umbraco.Core.Persistence.Repositories
|
||||
var sql = GetBaseQuery(false);
|
||||
sql.Where(GetBaseWhereClause(), new { Id = id });
|
||||
|
||||
var dto = Database.Query<UserTypeDto>(sql).FirstOrDefault();
|
||||
var dto = Database.FirstOrDefault<UserTypeDto>(sql);
|
||||
|
||||
if (dto == null)
|
||||
return null;
|
||||
|
||||
@@ -42,25 +42,22 @@ namespace Umbraco.Core.Services
|
||||
/// <returns><see cref="IProfile"/></returns>
|
||||
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<IUser>.Builder.Where(x => x.Username == username);
|
||||
return repository.GetByQuery(query).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<IUserRepository>(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<IUserRepository>(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<IUserRepository>(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()
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user