Browse Source

Merge pull request #14876 from abpframework/Extra-filters-12512

Add extra filters to the User page
pull/14926/head
malik masis 4 years ago
committed by GitHub
parent
commit
9c9d97b8ca
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs
  2. 44
      modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs
  3. 46
      modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs

16
modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityUserRepository.cs

@ -61,8 +61,16 @@ public interface IIdentityUserRepository : IBasicRepository<IdentityUser, Guid>
string userName = null,
string phoneNumber = null,
string emailAddress = null,
string name = null,
string surname = null,
bool? isLockedOut = null,
bool? notActive = null,
bool? emailConfirmed = null,
bool? isExternal = null,
DateTime? maxCreationTime = null,
DateTime? minCreationTime = null,
DateTime? maxModifitionTime = null,
DateTime? minModifitionTime = null,
CancellationToken cancellationToken = default
);
@ -98,8 +106,16 @@ public interface IIdentityUserRepository : IBasicRepository<IdentityUser, Guid>
string userName = null,
string phoneNumber = null,
string emailAddress = null,
string name = null,
string surname = null,
bool? isLockedOut = null,
bool? notActive = null,
bool? emailConfirmed = null,
bool? isExternal = null,
DateTime? maxCreationTime = null,
DateTime? minCreationTime = null,
DateTime? maxModifitionTime = null,
DateTime? minModifitionTime = null,
CancellationToken cancellationToken = default
);

44
modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs

@ -142,8 +142,16 @@ public class EfCoreIdentityUserRepository : EfCoreRepository<IIdentityDbContext,
string userName = null,
string phoneNumber = null,
string emailAddress = null,
string name = null,
string surname = null,
bool? isLockedOut = null,
bool? notActive = null,
bool? emailConfirmed = null,
bool? isExternal = null,
DateTime? maxCreationTime = null,
DateTime? minCreationTime = null,
DateTime? maxModifitionTime = null,
DateTime? minModifitionTime = null,
CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
@ -162,8 +170,16 @@ public class EfCoreIdentityUserRepository : EfCoreRepository<IIdentityDbContext,
.WhereIf(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName)
.WhereIf(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber)
.WhereIf(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress)
.WhereIf(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0)
.WhereIf(notActive == true, x => !x.IsActive)
.WhereIf(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
.WhereIf(isLockedOut.HasValue, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0)
.WhereIf(notActive.HasValue, x => !x.IsActive)
.WhereIf(emailConfirmed.HasValue, x => x.EmailConfirmed)
.WhereIf(isExternal.HasValue, x => x.IsExternal)
.WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime)
.WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime)
.WhereIf(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime)
.WhereIf(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime)
.OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityUser.UserName) : sorting)
.PageBy(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
@ -207,8 +223,16 @@ public class EfCoreIdentityUserRepository : EfCoreRepository<IIdentityDbContext,
string userName = null,
string phoneNumber = null,
string emailAddress = null,
string name = null,
string surname = null,
bool? isLockedOut = null,
bool? notActive = null,
bool? emailConfirmed = null,
bool? isExternal = null,
DateTime? maxCreationTime = null,
DateTime? minCreationTime = null,
DateTime? maxModifitionTime = null,
DateTime? minModifitionTime = null,
CancellationToken cancellationToken = default)
{
return await (await GetDbSetAsync())
@ -226,8 +250,16 @@ public class EfCoreIdentityUserRepository : EfCoreRepository<IIdentityDbContext,
.WhereIf(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName)
.WhereIf(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber)
.WhereIf(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress)
.WhereIf(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0)
.WhereIf(notActive == true, x => !x.IsActive)
.WhereIf(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
.WhereIf(isLockedOut.HasValue, x => x.LockoutEnabled && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0)
.WhereIf(notActive.HasValue, x => !x.IsActive)
.WhereIf(emailConfirmed.HasValue, x => x.EmailConfirmed)
.WhereIf(isExternal.HasValue, x => x.IsExternal)
.WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime)
.WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime)
.WhereIf(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime)
.WhereIf(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime)
.LongCountAsync(GetCancellationToken(cancellationToken));
}
@ -305,11 +337,11 @@ public class EfCoreIdentityUserRepository : EfCoreRepository<IIdentityDbContext,
public virtual async Task<IdentityUser> FindByTenantIdAndUserNameAsync(
[NotNull] string userName,
Guid? tenantId,
Guid? tenantId,
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
return await(await GetDbSetAsync())
return await (await GetDbSetAsync())
.IncludeDetails(includeDetails)
.FirstOrDefaultAsync(
u => u.TenantId == tenantId && u.UserName == userName,

46
modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityUserRepository.cs

@ -143,8 +143,16 @@ public class MongoIdentityUserRepository : MongoDbRepository<IAbpIdentityMongoDb
string userName = null,
string phoneNumber = null,
string emailAddress = null,
string name = null,
string surname = null,
bool? isLockedOut = null,
bool? notActive = null,
bool? emailConfirmed = null,
bool? isExternal = null,
DateTime? maxCreationTime = null,
DateTime? minCreationTime = null,
DateTime? maxModifitionTime = null,
DateTime? minModifitionTime = null,
CancellationToken cancellationToken = default)
{
return await (await GetMongoQueryableAsync(cancellationToken))
@ -162,8 +170,16 @@ public class MongoIdentityUserRepository : MongoDbRepository<IAbpIdentityMongoDb
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(notActive == true, x => !x.IsActive)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(isLockedOut.HasValue, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(notActive.HasValue, x => !x.IsActive)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(emailConfirmed.HasValue, x => x.EmailConfirmed)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(isExternal.HasValue, x => x.IsExternal)
.WhereIf(maxCreationTime != null, p => p.CreationTime <= maxCreationTime)
.WhereIf(minCreationTime != null, p => p.CreationTime >= minCreationTime)
.WhereIf(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime)
.WhereIf(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime)
.OrderBy(sorting.IsNullOrWhiteSpace() ? nameof(IdentityUser.UserName) : sorting)
.As<IMongoQueryable<IdentityUser>>()
.PageBy<IdentityUser, IMongoQueryable<IdentityUser>>(skipCount, maxResultCount)
@ -211,8 +227,16 @@ public class MongoIdentityUserRepository : MongoDbRepository<IAbpIdentityMongoDb
string userName = null,
string phoneNumber = null,
string emailAddress = null,
string name = null,
string surname = null,
bool? isLockedOut = null,
bool? notActive = null,
bool? emailConfirmed = null,
bool? isExternal = null,
DateTime? maxCreationTime = null,
DateTime? minCreationTime = null,
DateTime? maxModifitionTime = null,
DateTime? minModifitionTime = null,
CancellationToken cancellationToken = default)
{
return await (await GetMongoQueryableAsync(cancellationToken))
@ -230,8 +254,16 @@ public class MongoIdentityUserRepository : MongoDbRepository<IAbpIdentityMongoDb
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(userName), x => x.UserName == userName)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(phoneNumber), x => x.PhoneNumber == phoneNumber)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(emailAddress), x => x.Email == emailAddress)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(isLockedOut == true, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(notActive == true, x => !x.IsActive)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(isLockedOut.HasValue, x => x.LockoutEnabled && x.LockoutEnd > DateTimeOffset.UtcNow)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(notActive.HasValue, x => !x.IsActive)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(emailConfirmed.HasValue, x => x.EmailConfirmed)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(isExternal.HasValue, x => x.IsExternal)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(maxCreationTime != null, p => p.CreationTime <= maxCreationTime)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(minCreationTime != null, p => p.CreationTime >= minCreationTime)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(maxModifitionTime != null, p => p.LastModificationTime <= maxModifitionTime)
.WhereIf<IdentityUser, IMongoQueryable<IdentityUser>>(minModifitionTime != null, p => p.LastModificationTime >= minModifitionTime)
.LongCountAsync(GetCancellationToken(cancellationToken));
}
@ -272,9 +304,9 @@ public class MongoIdentityUserRepository : MongoDbRepository<IAbpIdentityMongoDb
}
public virtual async Task<IdentityUser> FindByTenantIdAndUserNameAsync(
[NotNull] string userName,
Guid? tenantId,
bool includeDetails = true,
[NotNull] string userName,
Guid? tenantId,
bool includeDetails = true,
CancellationToken cancellationToken = default)
{
return await (await GetMongoQueryableAsync(cancellationToken))

Loading…
Cancel
Save