Hi,
Thanks to the information you provided, I was able to reproduce the problem. The problem does not occur in the Application Layered template, but in the Microservice solution, so I could not reproduce it the first time. I will create an internal issue, and we will keep you informed about the progress. Thank you for your patience.
Hi,
Would you consider to use RabbitMQ or HangFire provider for background jobs? It is possible to process messages in parallel with them. See: https://github.com/abpframework/abp/issues/5217 and https://abp.io/docs/latest/framework/infrastructure/background-jobs/hangfire
Hi
To understand the problem better, could you please try creating a new ABP solution (with the same version and configration), and test if the same issue happens when Redis is enabled?
This will help us see if the problem is in your current project or something more general.
Hi,
Can you share the logs of your application (log.txt) located under Logs folder to make sure it's a CORS error.
Hi,
Can you try run the abp install-libs command to restore the NPM packages?
We have tested one scenario, where we will intercept the backend request and they are changing the file content from image to some other file like .aspx or any malware content. Will it still be able to block it.
Right now, the default implementation doesn't really check if the uploaded file is actually an image. So yeah, technically someone could upload something like a .jpg file that’s actually a renamed .aspx or some other non-image content.
That said, in most cases this isn't really a security issue — as long as:
But, if you’d like to apply your own security rules or validation logic, you can override the SetProfilePictureAsync method in AccountAppService and handle the checks there.
Hi,
If I understood correctly, you're looking for a way to check the user's permissions (or features), and based on that, control which UI components should be visible or accessible. Is that right?
If so, here's a common and recommended approach:
For menu items:
{
path: '/authors',
name: '::Menu:Authors',
parentName: '::Menu:BookStore',
layout: eLayoutType.application,
requiredPolicy: 'BookStore.Authors',
}
For UI components:
<button *abpPermission="'BookStore.Authors.Create'" id="create" class="btn btn-primary" type="button" (click)="createAuthor()">
<i class="fa fa-plus me-1"></i>
<span>{{ '::NewAuthor' | abpLocalization }}</span>
</button>
If you want to check whether a specific feature is enabled or disabled and render something accordingly, you can check this document.
For AppService methods:
[Authorize(BookStorePermissions.Authors.Delete)]
public async Task DeleteAsync(Guid id)
{
//continue to the normal flow...
}
or
public async Task CreateAsync(CreateAuthorDto input)
{
var result = await AuthorizationService
.AuthorizeAsync("Author_Management_Create_Books");
if (result.Succeeded == false)
{
//throw exception
throw new AbpAuthorizationException("...");
}
//continue to the normal flow...
}
If I misunderstood your question or you're trying to do something else, feel free to give a bit more detail.
Hi
If you're using the LeptonX SideMenu layout and want to customize things like the login page or the main layout (for example, changing the spinner), there are two main ways to do it:
1-) Override only what you need If the changes are small, you don’t need to replace the whole theme. You can just override specific layout or page files (like the login page) in your project by creating Razor files with the same path and name. ABP will use your version instead of the one from the theme or modules.
Here's how that works:
Note: If you need the code of a specific page, you can download the source code and look at it, or if you tell me which page you need, I can forward it to you.
2-) Customize the full theme If you plan to make bigger changes on the theme or modules, you can download the LeptonX or related modules source code and fully customize it:
Hi,
Apologies for the earlier misunderstanding, and thank you for your patience.
If you would like to disable username character validation, you can try the following configuration:
Configure<IdentityOptions>(options =>
{
options.User.AllowedUserNameCharacters = null;
});
This will remove the restriction on allowed characters in usernames. Let me know if you need help with anything else!