From 29fd0eba15df82030f184b02ac976a13810fa4fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 31 Jan 2018 17:02:08 +0300 Subject: [PATCH] Revised IdentityUserToken. --- .../Abp/Identity/IdentityUserTokenConsts.cs | 2 ++ .../Volo/Abp/Identity/IdentityRole.cs | 6 ++-- .../Volo/Abp/Identity/IdentityUser.cs | 28 +++++++++---------- .../Volo/Abp/Identity/IdentityUserStore.cs | 2 +- .../Volo/Abp/Identity/IdentityUserToken.cs | 5 ++-- ...IdentityDbContextModelBuilderExtensions.cs | 5 ++-- 6 files changed, 25 insertions(+), 23 deletions(-) diff --git a/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserTokenConsts.cs b/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserTokenConsts.cs index 53b79773a0..92305851fb 100644 --- a/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserTokenConsts.cs +++ b/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/IdentityUserTokenConsts.cs @@ -3,5 +3,7 @@ public static class IdentityUserTokenConsts { public const int MaxLoginProviderLength = 64; + + public const int MaxNameLength = 128; } } diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs index 7a494ddae5..79ce254477 100644 --- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs +++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityRole.cs @@ -55,7 +55,7 @@ namespace Volo.Abp.Identity Claims = new Collection(); } - public void AddClaim([NotNull] IGuidGenerator guidGenerator, [NotNull] Claim claim) + public virtual void AddClaim([NotNull] IGuidGenerator guidGenerator, [NotNull] Claim claim) { Check.NotNull(guidGenerator, nameof(guidGenerator)); Check.NotNull(claim, nameof(claim)); @@ -63,7 +63,7 @@ namespace Volo.Abp.Identity Claims.Add(new IdentityRoleClaim(guidGenerator.Create(), Id, claim)); } - public void AddClaims([NotNull] IGuidGenerator guidGenerator, [NotNull] IEnumerable claims) + public virtual void AddClaims([NotNull] IGuidGenerator guidGenerator, [NotNull] IEnumerable claims) { Check.NotNull(guidGenerator, nameof(guidGenerator)); Check.NotNull(claims, nameof(claims)); @@ -74,7 +74,7 @@ namespace Volo.Abp.Identity } } - public void RemoveClaim([NotNull] Claim claim) + public virtual void RemoveClaim([NotNull] Claim claim) { Check.NotNull(claim, nameof(claim)); diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs index 256ee9be9f..4cdec69935 100644 --- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs +++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUser.cs @@ -132,7 +132,7 @@ namespace Volo.Abp.Identity Tokens = new Collection(); } - public void AddRole(Guid roleId) + public virtual void AddRole(Guid roleId) { Check.NotNull(roleId, nameof(roleId)); @@ -144,7 +144,7 @@ namespace Volo.Abp.Identity Roles.Add(new IdentityUserRole(Id, roleId)); } - public void RemoveRole(Guid roleId) + public virtual void RemoveRole(Guid roleId) { Check.NotNull(roleId, nameof(roleId)); @@ -156,14 +156,14 @@ namespace Volo.Abp.Identity Roles.RemoveAll(r => r.RoleId == roleId); } - public bool IsInRole(Guid roleId) + public virtual bool IsInRole(Guid roleId) { Check.NotNull(roleId, nameof(roleId)); return Roles.Any(r => r.RoleId == roleId); } - public void AddClaim([NotNull] IGuidGenerator guidGenerator, [NotNull] Claim claim) + public virtual void AddClaim([NotNull] IGuidGenerator guidGenerator, [NotNull] Claim claim) { Check.NotNull(guidGenerator, nameof(guidGenerator)); Check.NotNull(claim, nameof(claim)); @@ -171,7 +171,7 @@ namespace Volo.Abp.Identity Claims.Add(new IdentityUserClaim(guidGenerator.Create(), Id, claim)); } - public void AddClaims([NotNull] IGuidGenerator guidGenerator, [NotNull] IEnumerable claims) + public virtual void AddClaims([NotNull] IGuidGenerator guidGenerator, [NotNull] IEnumerable claims) { Check.NotNull(guidGenerator, nameof(guidGenerator)); Check.NotNull(claims, nameof(claims)); @@ -182,7 +182,7 @@ namespace Volo.Abp.Identity } } - public void ReplaceClaim([NotNull] Claim claim, [NotNull] Claim newClaim) + public virtual void ReplaceClaim([NotNull] Claim claim, [NotNull] Claim newClaim) { Check.NotNull(claim, nameof(claim)); Check.NotNull(newClaim, nameof(newClaim)); @@ -194,7 +194,7 @@ namespace Volo.Abp.Identity } } - public void RemoveClaims([NotNull] IEnumerable claims) + public virtual void RemoveClaims([NotNull] IEnumerable claims) { Check.NotNull(claims, nameof(claims)); @@ -204,21 +204,21 @@ namespace Volo.Abp.Identity } } - public void RemoveClaim([NotNull] Claim claim) + public virtual void RemoveClaim([NotNull] Claim claim) { Check.NotNull(claim, nameof(claim)); Claims.RemoveAll(c => c.ClaimValue == claim.Value && c.ClaimType == claim.Type); } - public void AddLogin([NotNull] UserLoginInfo login) + public virtual void AddLogin([NotNull] UserLoginInfo login) { Check.NotNull(login, nameof(login)); Logins.Add(new IdentityUserLogin(Id, login)); } - public void RemoveLogin([NotNull] string loginProvider, [NotNull] string providerKey) + public virtual void RemoveLogin([NotNull] string loginProvider, [NotNull] string providerKey) { Check.NotNull(loginProvider, nameof(loginProvider)); Check.NotNull(providerKey, nameof(providerKey)); @@ -227,17 +227,17 @@ namespace Volo.Abp.Identity } [CanBeNull] - public IdentityUserToken FindToken(string loginProvider, string name) + public virtual IdentityUserToken FindToken(string loginProvider, string name) { return Tokens.FirstOrDefault(t => t.LoginProvider == loginProvider && t.Name == name); } - public void SetToken(IGuidGenerator guidGenerator, string loginProvider, string name, string value) + public virtual void SetToken(string loginProvider, string name, string value) { var token = FindToken(loginProvider, name); if (token == null) { - Tokens.Add(new IdentityUserToken(guidGenerator.Create(), Id, loginProvider, name, value)); + Tokens.Add(new IdentityUserToken(Id, loginProvider, name, value)); } else { @@ -245,7 +245,7 @@ namespace Volo.Abp.Identity } } - public void RemoveToken(string loginProvider, string name) + public virtual void RemoveToken(string loginProvider, string name) { Tokens.RemoveAll(t => t.LoginProvider == loginProvider && t.Name == name); } diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs index c56f33eddf..c5782269ac 100644 --- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs +++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserStore.cs @@ -1002,7 +1002,7 @@ namespace Volo.Abp.Identity await _userRepository.EnsureCollectionLoadedAsync(user, u => u.Tokens, cancellationToken); - user.SetToken(_guidGenerator, loginProvider, name, value); + user.SetToken(loginProvider, name, value); } /// diff --git a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserToken.cs b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserToken.cs index e37c5b9d43..56045308d0 100644 --- a/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserToken.cs +++ b/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserToken.cs @@ -7,7 +7,7 @@ namespace Volo.Abp.Identity /// /// Represents an authentication token for a user. /// - public class IdentityUserToken : Entity + public class IdentityUserToken : Entity { /// /// Gets or sets the primary key of the user that the token belongs to. @@ -34,12 +34,11 @@ namespace Volo.Abp.Identity } - protected internal IdentityUserToken(Guid id, Guid userId, [NotNull] string loginProvider, [NotNull] string name, string value) + protected internal IdentityUserToken(Guid userId, [NotNull] string loginProvider, [NotNull] string name, string value) { Check.NotNull(loginProvider, nameof(loginProvider)); Check.NotNull(name, nameof(name)); - Id = id; UserId = userId; LoginProvider = loginProvider; Name = name; diff --git a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs index affb8c75f7..c1b8eaa597 100644 --- a/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs +++ b/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs @@ -101,9 +101,10 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { b.ToTable(tablePrefix + "UserTokens", schema); - b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserTokenConsts.MaxLoginProviderLength).IsRequired(); + b.HasKey(l => new { l.UserId, l.LoginProvider, l.Name }); - b.HasIndex(l => new { l.UserId, l.LoginProvider, l.Name }); + b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserTokenConsts.MaxLoginProviderLength).IsRequired(); + b.Property(ul => ul.LoginProvider).HasMaxLength(IdentityUserTokenConsts.MaxNameLength).IsRequired(); }); } }