From e76338c23a00b6256698b0e006ea21c79b45a372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 19 Mar 2020 13:40:58 +0300 Subject: [PATCH 1/7] identity etos added --- .../Volo/Abp/Identity/IdentityClaimTypeEto.cs | 26 +++++++++++++++++++ .../Volo/Abp/Identity/IdentityRoleEto.cs | 21 +++++++++++++++ .../Volo.Abp.Identity.Domain.csproj | 1 + .../Abp/Identity/AbpIdentityDomainModule.cs | 8 ++++++ .../Identity/IdentityDomainMappingProfile.cs | 13 ++++++++++ 5 files changed, 69 insertions(+) create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs new file mode 100644 index 0000000000..1fb13047fd --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs @@ -0,0 +1,26 @@ +using System; + +namespace Volo.Abp.Identity +{ + [Serializable] + public class IdentityClaimTypeEto + { + public Guid Id { get; set; } + + public Guid? TenantId { get; set; } + + public virtual string Name { get; set; } + + public virtual bool Required { get; set; } + + public virtual bool IsStatic { get; set; } + + public virtual string Regex { get; set; } + + public virtual string RegexDescription { get; set; } + + public virtual string Description { get; set; } + + public virtual IdentityClaimValueType ValueType { get; set; } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs new file mode 100644 index 0000000000..3effffce6b --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -0,0 +1,21 @@ +using System; + +namespace Volo.Abp.Identity +{ + public class IdentityRoleEto + { + public Guid Id { get; set; } + + public Guid? TenantId { get; set; } + + public virtual string Name { get; protected internal set; } + + public virtual string NormalizedName { get; protected internal set; } + + public virtual bool IsDefault { get; set; } + + public virtual bool IsStatic { get; set; } + + public virtual bool IsPublic { get; set; } + } +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj index f6eb1df909..fe364e92fb 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj @@ -25,6 +25,7 @@ + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 1bb065017e..4bcd2ee234 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Options; +using Volo.Abp.AutoMapper; using Volo.Abp.Domain; using Volo.Abp.EventBus.Distributed; using Volo.Abp.Modularity; @@ -21,6 +22,13 @@ namespace Volo.Abp.Identity Configure(options => { options.EtoMappings.Add(); + options.EtoMappings.Add(); + options.EtoMappings.Add(); + }); + + Configure(options => + { + options.AddProfile(validate: true); }); var identityBuilder = context.Services.AddAbpIdentity(options => diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs new file mode 100644 index 0000000000..582e37c6d9 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs @@ -0,0 +1,13 @@ +using AutoMapper; + +namespace Volo.Abp.Identity +{ + public class IdentityDomainMappingProfile : Profile + { + public IdentityDomainMappingProfile() + { + CreateMap(); + CreateMap(); + } + } +} \ No newline at end of file From bff490366c35f00d3bb3a2d7bbc857cbec4b6d75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 19 Mar 2020 13:43:25 +0300 Subject: [PATCH 2/7] Update IdentityRoleEto.cs --- .../Volo/Abp/Identity/IdentityRoleEto.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index 3effffce6b..52b7ff907f 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -2,6 +2,7 @@ namespace Volo.Abp.Identity { + [Serializable] public class IdentityRoleEto { public Guid Id { get; set; } From 27dd593f460198da2ae8313e6d389fbafe5e2966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 19 Mar 2020 13:44:16 +0300 Subject: [PATCH 3/7] Update IdentityRoleEto.cs --- .../Volo/Abp/Identity/IdentityRoleEto.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index 52b7ff907f..4112f03fee 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -9,9 +9,9 @@ namespace Volo.Abp.Identity public Guid? TenantId { get; set; } - public virtual string Name { get; protected internal set; } + public virtual string Name { get; set; } - public virtual string NormalizedName { get; protected internal set; } + public virtual string NormalizedName { get; set; } public virtual bool IsDefault { get; set; } From 5e9babb6e08e7ed10a0134866925a97fc7d1e510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Thu, 19 Mar 2020 14:03:14 +0300 Subject: [PATCH 4/7] bugfix --- .../Volo/Abp/Identity/IdentityClaimTypeEto.cs | 14 +++++++------- .../Volo/Abp/Identity/IdentityRoleEto.cs | 10 +++++----- .../Abp/Identity/IdentityDomainMappingProfile.cs | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs index 1fb13047fd..794d576ce5 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs @@ -9,18 +9,18 @@ namespace Volo.Abp.Identity public Guid? TenantId { get; set; } - public virtual string Name { get; set; } + public string Name { get; set; } - public virtual bool Required { get; set; } + public bool Required { get; set; } - public virtual bool IsStatic { get; set; } + public bool IsStatic { get; set; } - public virtual string Regex { get; set; } + public string Regex { get; set; } - public virtual string RegexDescription { get; set; } + public string RegexDescription { get; set; } - public virtual string Description { get; set; } + public string Description { get; set; } - public virtual IdentityClaimValueType ValueType { get; set; } + public IdentityClaimValueType ValueType { get; set; } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index 4112f03fee..3247b86691 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -9,14 +9,14 @@ namespace Volo.Abp.Identity public Guid? TenantId { get; set; } - public virtual string Name { get; set; } + public string Name { get; set; } - public virtual string NormalizedName { get; set; } + public string NormalizedName { get; set; } - public virtual bool IsDefault { get; set; } + public bool IsDefault { get; set; } - public virtual bool IsStatic { get; set; } + public bool IsStatic { get; set; } - public virtual bool IsPublic { get; set; } + public bool IsPublic { get; set; } } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs index 582e37c6d9..8b7296242b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs @@ -7,7 +7,7 @@ namespace Volo.Abp.Identity public IdentityDomainMappingProfile() { CreateMap(); - CreateMap(); + CreateMap(); } } } \ No newline at end of file From d4d45403214609ed09d8039b8e4361b9e09025fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Fri, 20 Mar 2020 11:31:54 +0300 Subject: [PATCH 5/7] updated eto --- .../Volo/Abp/Identity/IdentityClaimTypeEto.cs | 4 +--- .../Volo/Abp/Identity/IdentityRoleEto.cs | 5 +++-- .../Volo/Abp/Identity/AbpIdentityDomainModule.cs | 12 ++++++------ 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs index 794d576ce5..2d0dd4ebfc 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityClaimTypeEto.cs @@ -6,9 +6,7 @@ namespace Volo.Abp.Identity public class IdentityClaimTypeEto { public Guid Id { get; set; } - - public Guid? TenantId { get; set; } - + public string Name { get; set; } public bool Required { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index 3247b86691..ea10f1e41c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace Volo.Abp.Identity { @@ -12,11 +13,11 @@ namespace Volo.Abp.Identity public string Name { get; set; } public string NormalizedName { get; set; } - + public bool IsDefault { get; set; } public bool IsStatic { get; set; } - + public bool IsPublic { get; set; } } } \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 4bcd2ee234..38955de588 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -19,18 +19,18 @@ namespace Volo.Abp.Identity { public override void ConfigureServices(ServiceConfigurationContext context) { + Configure(options => + { + options.AddProfile(); + }); + Configure(options => { options.EtoMappings.Add(); options.EtoMappings.Add(); options.EtoMappings.Add(); }); - - Configure(options => - { - options.AddProfile(validate: true); - }); - + var identityBuilder = context.Services.AddAbpIdentity(options => { options.User.RequireUniqueEmail = true; From a8b6d93cb05ea92d30b8d3b052730aa500b3f18f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 20 Mar 2020 14:13:17 +0300 Subject: [PATCH 6/7] Should set auto mapping context for ETOs. Also, added missing dependency to AbpAutoMapperModule --- .../Volo/Abp/Identity/IdentityRoleEto.cs | 3 --- .../Volo/Abp/Identity/AbpIdentityDomainModule.cs | 11 +++++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs index ea10f1e41c..8e91eadf72 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityRoleEto.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; namespace Volo.Abp.Identity { @@ -11,8 +10,6 @@ namespace Volo.Abp.Identity public Guid? TenantId { get; set; } public string Name { get; set; } - - public string NormalizedName { get; set; } public bool IsDefault { get; set; } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index 38955de588..b0b3dad266 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -13,22 +13,25 @@ namespace Volo.Abp.Identity [DependsOn( typeof(AbpDddDomainModule), typeof(AbpIdentityDomainSharedModule), - typeof(AbpUsersDomainModule) + typeof(AbpUsersDomainModule), + typeof(AbpAutoMapperModule) )] public class AbpIdentityDomainModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { + context.Services.AddAutoMapperObjectMapper(); + Configure(options => { - options.AddProfile(); + options.AddProfile(validate: true); }); Configure(options => { options.EtoMappings.Add(); - options.EtoMappings.Add(); - options.EtoMappings.Add(); + options.EtoMappings.Add(typeof(AbpIdentityDomainModule)); + options.EtoMappings.Add(typeof(AbpIdentityDomainModule)); }); var identityBuilder = context.Services.AddAbpIdentity(options => From 0200e5e340971cd9d716f082d37251fb0d9fc811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Fri, 20 Mar 2020 14:19:56 +0300 Subject: [PATCH 7/7] Use automapper to map IdentityUser to UserEto --- .../Abp/Identity/AbpIdentityDomainModule.cs | 2 +- .../Identity/IdentityDomainMappingProfile.cs | 2 ++ .../Volo/Abp/Identity/IdentityUser.cs | 34 +------------------ 3 files changed, 4 insertions(+), 34 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index b0b3dad266..12af875bab 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -29,7 +29,7 @@ namespace Volo.Abp.Identity Configure(options => { - options.EtoMappings.Add(); + options.EtoMappings.Add(typeof(AbpIdentityDomainModule)); options.EtoMappings.Add(typeof(AbpIdentityDomainModule)); options.EtoMappings.Add(typeof(AbpIdentityDomainModule)); }); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs index 8b7296242b..547525b46e 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs @@ -1,4 +1,5 @@ using AutoMapper; +using Volo.Abp.Users; namespace Volo.Abp.Identity { @@ -6,6 +7,7 @@ namespace Volo.Abp.Identity { public IdentityDomainMappingProfile() { + CreateMap(); CreateMap(); CreateMap(); } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs index c6ad077456..51e15339ee 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs @@ -8,12 +8,11 @@ using Microsoft.AspNetCore.Identity; using Volo.Abp.Auditing; 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, IUser, IMapTo + public class IdentityUser : FullAuditedAggregateRoot, IUser { public virtual Guid? TenantId { get; protected set; } @@ -281,36 +280,5 @@ namespace Volo.Abp.Identity { return $"{base.ToString()}, UserName = {UserName}"; } - - UserEto IMapTo.MapTo() - { - //TODO: Instead, consider to use 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.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; - } } }