Browse Source

Defined UserEto

pull/603/head
Halil ibrahim Kalkan 8 years ago
parent
commit
3dcc6ccd73
  1. 14
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
  2. 34
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs
  3. 3
      modules/users/src/Volo.Abp.Users.Abstractions/Volo.Abp.Users.Abstractions.csproj
  4. 6
      modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/AbpUsersAbstractionModule.cs
  5. 4
      modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserData.cs
  6. 27
      modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs

14
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs

@ -3,6 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
using Volo.Abp.Domain;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Identity.Localization;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
@ -21,29 +22,34 @@ namespace Volo.Abp.Identity
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
context.Services.Configure<PermissionManagementOptions>(options =>
Configure<PermissionManagementOptions>(options =>
{
options.ManagementProviders.Add<UserPermissionManagementProvider>();
options.ManagementProviders.Add<RolePermissionManagementProvider>();
});
context.Services.Configure<SettingOptions>(options =>
Configure<SettingOptions>(options =>
{
options.DefinitionProviders.Add<AbpIdentitySettingDefinitionProvider>();
});
context.Services.Configure<VirtualFileSystemOptions>(options =>
Configure<VirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<AbpIdentityDomainModule>();
});
context.Services.Configure<AbpLocalizationOptions>(options =>
Configure<AbpLocalizationOptions>(options =>
{
options.Resources
.Get<IdentityResource>()
.AddVirtualJson("/Volo/Abp/Identity/Localization/Domain");
});
Configure<DistributedEventBusOptions>(options =>
{
options.EtoMappings.Add<IdentityUser, UserEto>();
});
var identityBuilder = context.Services.AddAbpIdentity(options =>
{
options.User.RequireUniqueEmail = true;

34
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs

@ -10,11 +10,12 @@ using Volo.Abp.Data;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.Guids;
using Volo.Abp.ObjectMapping;
using Volo.Abp.Users;
namespace Volo.Abp.Identity
{
public class IdentityUser : FullAuditedAggregateRoot<Guid>, IHasConcurrencyStamp, IUser, IHasExtraProperties
public class IdentityUser : FullAuditedAggregateRoot<Guid>, IHasConcurrencyStamp, IUser, IHasExtraProperties, IMapTo<UserEto>
{
public virtual Guid? TenantId { get; protected set; }
@ -282,5 +283,36 @@ namespace Volo.Abp.Identity
{
return $"{base.ToString()}, UserName = {UserName}";
}
UserEto IMapTo<UserEto>.MapTo()
{
//TODO: Instead, consider to user automapper (but it makes dependency just for a small code part)??
return new UserEto
{
Name = Name,
Email = Email,
EmailConfirmed = EmailConfirmed,
Id = Id,
PhoneNumber = PhoneNumber,
PhoneNumberConfirmed = PhoneNumberConfirmed,
Surname = Surname,
TenantId = TenantId,
UserName = UserName
};
}
void IMapTo<UserEto>.MapTo(UserEto destination)
{
destination.Name = Name;
destination.Email = Email;
destination.EmailConfirmed = EmailConfirmed;
destination.Id = Id;
destination.PhoneNumber = PhoneNumber;
destination.PhoneNumberConfirmed = PhoneNumberConfirmed;
destination.Surname = Surname;
destination.TenantId = TenantId;
destination.UserName = UserName;
}
}
}

3
modules/users/src/Volo.Abp.Users.Abstractions/Volo.Abp.Users.Abstractions.csproj

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\common.props" />
@ -14,6 +14,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj" />
</ItemGroup>

6
modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/AbpUsersAbstractionModule.cs

@ -1,11 +1,17 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.EventBus;
using Volo.Abp.Modularity;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Settings;
namespace Volo.Abp.Users
{
//TODO: Consider to (somehow) move this to the framework to the same assemblily of ICurrentUser!
[DependsOn(
typeof(AbpMultiTenancyAbstractionsModule),
typeof(AbpEventBusModule)
)]
public class AbpUsersAbstractionModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)

4
modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserData.cs

@ -7,6 +7,8 @@ namespace Volo.Abp.Users
{
public Guid Id { get; set; }
public Guid? TenantId { get; set; }
public string UserName { get; set; }
public string Name { get; set; }
@ -21,8 +23,6 @@ namespace Volo.Abp.Users
public bool PhoneNumberConfirmed { get; set; }
public Guid? TenantId { get; set; }
public UserData()
{

27
modules/users/src/Volo.Abp.Users.Abstractions/Volo/Abp/Users/UserEto.cs

@ -0,0 +1,27 @@
using System;
using Volo.Abp.EventBus;
namespace Volo.Abp.Users
{
[EventName("Volo.Abp.Users.User")]
public class UserEto : IUserData
{
public Guid Id { get; set; }
public Guid? TenantId { get; set; }
public string UserName { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string Email { get; set; }
public bool EmailConfirmed { get; set; }
public string PhoneNumber { get; set; }
public bool PhoneNumberConfirmed { get; set; }
}
}
Loading…
Cancel
Save