identity IdentityClaimTyp improvements

pull/503/head
Yunus Emre Kalkan 7 years ago
parent 33305088ee
commit 34d2649314

@ -6,7 +6,7 @@ namespace Volo.Abp.Identity
{
public class IdentityClaimTypeConsts
{
public const int MaxNameLength = 128;
public const int MaxNameLength = 256;
public const int MaxRegexLength = 512;

@ -40,6 +40,8 @@ namespace Volo.Abp.Identity
CancellationToken cancellationToken = default
);
Task UpdateClaimsAsync(Guid id, List<IdentityUserClaim> claims);
Task<List<IdentityUser>> GetListByNormalizedRoleNameAsync(
string normalizedRoleName,
bool includeDetails = false,
@ -61,6 +63,10 @@ namespace Volo.Abp.Identity
CancellationToken cancellationToken = default
);
Task<List<IdentityUserClaim>> GetClaimsAsync(
Guid id,
CancellationToken cancellationToken = default);
Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default

@ -25,7 +25,7 @@ namespace Volo.Abp.Identity
UserId = userId;
}
protected internal IdentityUserClaim(Guid id, Guid userId, [NotNull] string claimType, string claimValue, Guid? tenantId)
public IdentityUserClaim(Guid id, Guid userId, [NotNull] string claimType, string claimValue, Guid? tenantId)
: base(id, claimType, claimValue, tenantId)
{
UserId = userId;

@ -8,15 +8,18 @@ using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Guids;
namespace Volo.Abp.Identity.EntityFrameworkCore
{
public class EfCoreIdentityUserRepository : EfCoreRepository<IIdentityDbContext, IdentityUser, Guid>, IIdentityUserRepository
{
public EfCoreIdentityUserRepository(IDbContextProvider<IIdentityDbContext> dbContextProvider)
private readonly IGuidGenerator _guidGenerator;
public EfCoreIdentityUserRepository(IDbContextProvider<IIdentityDbContext> dbContextProvider, IGuidGenerator guidGenerator)
: base(dbContextProvider)
{
_guidGenerator = guidGenerator;
}
public virtual async Task<IdentityUser> FindByNormalizedUserNameAsync(
@ -131,6 +134,34 @@ namespace Volo.Abp.Identity.EntityFrameworkCore
return await query.ToListAsync(GetCancellationToken(cancellationToken));
}
public virtual async Task<List<IdentityUserClaim>> GetClaimsAsync(
Guid id,
CancellationToken cancellationToken = default)
{
var query = from userClaim in DbContext.Set<IdentityUserClaim>()
where userClaim.UserId == id
select userClaim;
return await query.ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task UpdateClaimsAsync(Guid id, List<IdentityUserClaim> claims)
{
var dbSet = DbContext.Set<IdentityUserClaim>();
var oldClaims = dbSet.Where(c => c.UserId == id).ToList();
foreach (var oldClaim in oldClaims)
{
dbSet.Remove(oldClaim);
}
foreach (var claim in claims)
{
dbSet.Add(new IdentityUserClaim(_guidGenerator.Create(), id, claim.ClaimType, claim.ClaimValue, CurrentTenant.Id));
}
}
public virtual async Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default)

@ -8,16 +8,19 @@ using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
using Volo.Abp.Domain.Repositories.MongoDB;
using Volo.Abp.Guids;
using Volo.Abp.MongoDB;
namespace Volo.Abp.Identity.MongoDB
{
public class MongoIdentityUserRepository : MongoDbRepository<IAbpIdentityMongoDbContext, IdentityUser, Guid>, IIdentityUserRepository
{
public MongoIdentityUserRepository(IMongoDbContextProvider<IAbpIdentityMongoDbContext> dbContextProvider)
private readonly IGuidGenerator _guidGenerator;
public MongoIdentityUserRepository(IMongoDbContextProvider<IAbpIdentityMongoDbContext> dbContextProvider, IGuidGenerator guidGenerator)
: base(dbContextProvider)
{
_guidGenerator = guidGenerator;
}
public async Task<IdentityUser> FindByNormalizedUserNameAsync(
@ -118,6 +121,24 @@ namespace Volo.Abp.Identity.MongoDB
return await DbContext.Roles.AsQueryable().Where(r => roleIds.Contains(r.Id)).ToListAsync(GetCancellationToken(cancellationToken));
}
public async Task<List<IdentityUserClaim>> GetClaimsAsync(Guid id, CancellationToken cancellationToken = default)
{
var user = await GetAsync(id, cancellationToken: GetCancellationToken(cancellationToken));
return user.Claims.ToList();
}
public async Task UpdateClaimsAsync(Guid id, List<IdentityUserClaim> claims)
{
var user = await GetAsync(id);
user.Claims.Clear();
foreach (var claim in claims)
{
user.Claims.Add(new IdentityUserClaim(_guidGenerator.Create(), id, claim.ClaimType, claim.ClaimValue, CurrentTenant.Id));
}
}
public async Task<long> GetCountAsync(
string filter = null,
CancellationToken cancellationToken = default)

Loading…
Cancel
Save