hi
Yes, You can also add a new table
Id
UserID
CreatedDate
Password
hi https://github.com/abpframework/abp/pull/17534
hi
https://learn.microsoft.com/en-us/ef/core/modeling/shadow-properties#accessing-shadow-properties
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(EfCoreIdentityUserRepository), typeof(IIdentityUserRepository))]
public class MyEfCoreIdentityUserRepository : EfCoreIdentityUserRepository
{
public MyEfCoreIdentityUserRepository(IDbContextProvider<IIdentityDbContext> dbContextProvider) : base(dbContextProvider)
{
}
public override async Task<List<IdentityUser>> GetListAsync(
string sorting = null,
int maxResultCount = int.MaxValue,
int skipCount = 0,
string filter = null,
bool includeDetails = false,
Guid? roleId = null,
Guid? organizationUnitId = null,
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)
{
if (sorting == "TestField asc" || sorting == "TestField desc")
{
var queryable = (await GetDbSetAsync())
.IncludeDetails(includeDetails)
.WhereIf(
!filter.IsNullOrWhiteSpace(),
u =>
u.UserName.Contains(filter) ||
u.Email.Contains(filter) ||
(u.Name != null && u.Name.Contains(filter)) ||
(u.Surname != null && u.Surname.Contains(filter)) ||
(u.PhoneNumber != null && u.PhoneNumber.Contains(filter))
)
.WhereIf(roleId.HasValue, identityUser => identityUser.Roles.Any(x => x.RoleId == roleId.Value))
.WhereIf(organizationUnitId.HasValue, identityUser => identityUser.OrganizationUnits.Any(x => x.OrganizationUnitId == organizationUnitId.Value))
.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(!string.IsNullOrWhiteSpace(name), x => x.Name == name)
.WhereIf(!string.IsNullOrWhiteSpace(surname), x => x.Surname == surname)
.WhereIf(isLockedOut.HasValue, x => (x.LockoutEnabled && x.LockoutEnd.HasValue && x.LockoutEnd.Value.CompareTo(DateTime.UtcNow) > 0) == isLockedOut.Value)
.WhereIf(notActive.HasValue, x => x.IsActive == !notActive.Value)
.WhereIf(emailConfirmed.HasValue, x => x.EmailConfirmed == emailConfirmed.Value)
.WhereIf(isExternal.HasValue, x => x.IsExternal == isExternal.Value)
.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);
queryable = sorting.Contains("desc")
? queryable.OrderByDescending(b => EF.Property<string>(b, "TestField"))
: queryable.OrderBy(b => EF.Property<string>(b, "TestField"));
return await queryable.PageBy(skipCount, maxResultCount).ToListAsync(GetCancellationToken(cancellationToken));
}
return await base.GetListAsync(sorting, maxResultCount, skipCount, filter, includeDetails, roleId, organizationUnitId,
userName, phoneNumber, emailAddress, name, surname, isLockedOut, notActive, emailConfirmed, isExternal,
maxCreationTime, minCreationTime, maxModifitionTime, minModifitionTime, cancellationToken);
}
}
hi
You can check the password history when the user changes its password.
ChangePasswordAsync
of ProfileAppService
ResetPasswordAsync
of AccountAppService
hi
You can check the source code of StaticPermissionDefinitionStore
https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/StaticPermissionDefinitionStore.cs#L74-L102
hi
You can update your js files of blazor wasm
Run abp bundle
command in your blazor wasm project.
hi
Please share full logs.txt
Thanks.
liming.ma@volosoft.com
Thanks I will confirm it asap.
Request starting HTTP/2 GET https://xxxxx:44322/__bundles/moment.min.js.map; - -
This may be browser behavior you can ignore it now.
hi
You can exec your sql on
https://github.com/abpframework/abp/blob/dev/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/AbpEntityFrameworkCoreTestModule.cs#L102-L104
You can remove your Contributor
from AbpDataSeedOptions
services.Configure<AbpDataSeedOptions>(options =>
{
options.Contributors.Remove...
});