I would like the resources (localized strings) to have better names (keys). Or that they could be customized.
The problem is as follows: You often have the same property names in different entities. For example Name, Description, Remark, IsActive, ... But now you might want to call the "Name" property "Customer name" in the customer views and translate Name as "Company name" in the company views. This currently requires a lot of manual adjustments (or you have to be extremely careful when regenerating and make manual adjustments again).
I have adapted the templates accordingly so that this is generated according to the following scheme:
@L["Entity:%%entity-name%%:%%property-name%%"]"
This makes future updates of the templates very time-consuming for me ( this is why I asked for a better update option). Because there are about 28 templates that I had to modify. But a structured resource file was more important to me.
Possible solution: ...would be if you could also specify the resource key to be used for a property in the suite. As a default, you could use %%property-name%% as in the past, which would also ensure backwards compatibility. But you would have the option of overwriting this.
I have also given all common resources (generated by the suite) the prefix "Common" (e.g. @L["Common:Update"]
). This allows me to sort the resource file and see immediately which strings have been generated and belong together. These strings are defined in Frontend.Blazor.Page.Partials.Localizations.txt.
Because the templates are not yet perfect and sometimes contain errors, I had to customize them. When a new version is released, it is relatively time-consuming to find out whether I can switch back to the original template, whether I have to continue using my modified template or whether I should even perform a merge.
Several possible solutions come to mind:
The test classes are not generated correctly by the suite. Especially in the repository tests, the GetListAsync() methods are also called with the parameters that no longer appear in the method because "Filterable" has been deactivated.
I also have problems with a child entity that has navigation properties. The generated test classes of the navigation property entities require a DataSeedContributor of the child entity, but this class was not generated.
When I generate an entity several times in the ABP Suite, certain usings are added to the (extended) manager class each time (MyProject.Domain\Customers\CustomerManager.Extended.cs).
I believe these are the entities that contain enums and navigation properties (the namespace is added, regardless of whether it already exists).
In general, it would be nice if the lines of code were indented correctly in the from ABP Suite generated code.
I get compilation errors when I have generated master-child entities. I am using version 8.1.0.
I had to remove %%<if:HasMasterEntityNavigationProperties>%%
and %%</if:HasMasterEntityNavigationProperties>%%
in the following two templates:
This does not seem to be applied correctly.
After my change, the entites were generated correctly. The changed result looks like this:
Even though it may not be directly related to ABP, do you know more about it and can perhaps help me anyway?
I have now tested the cookie expire time. The result of this is that you have to log in to the application again after the corresponding time (which would be good in principle), but the login to Microsoft still happens automatically and without entering a password and MFA.
Here my solution:
.radar-spinner .circle-inner {
border-left-color: var(--lpx-brand) !important;
border-right-color: var(--lpx-brand) !important;
}
Thanks for help, liangshiwei
Our customer uses Microsoft Entra ID (Azure AD) as an external provider. A lifetime of 10 hours is configured in the conditional access policy. After 12 hours (or even longer), the page is reopened in the browser, but he does not have to authenticate again. One click on the Microsoft login button is enough and he is logged in. According to the setup in Entra, MFA would be required, but this query does not appear. He only had to do MFA the very first time he logged in.
We have been looking for the cause for a while now, but haven't found anything yet. What are we overlooking?
Second question on this topic: For logins with "local" ABP users (not via Microsoft Entra), we would like to configure that the user is automatically logged out after 15 minutes of inactivity.
I have set the following, but unfortunately this does not work:
PreConfigure<OpenIddictServerBuilder>(builder =>
{
builder.SetAccessTokenLifetime(TimeSpan.FromMinutes(15));
builder.SetIdentityTokenLifetime(TimeSpan.FromMinutes(15));
});
Thanks for help! Adrian