hi
I can't think of any possible reasons, we have followed Microsoft's documentation.
Can you try to use redis backplane in non-abp applications?
You should implement the IMultiTenant interface for your entities to make them multi-tenancy ready.
https://docs.abp.io/en/abp/latest/Multi-Tenancy
See https://github.com/abpframework/abp/pull/7509
The entity inherits IMultiTenant which means it is multi-tenant, and will try to get the connection string of the tenant.
hi
It is currently impossible. : )
is it correct behavior? When it needs to be triggered??
For instance, current tenant's company have bound licences, each of licence determines which UI pages ("modules") are accessible for current user.
You can create some permissions, Don't grant to users or user roles. Then your custom PermissionValueProvider will be triggered.
You can check the current tenant's company licences to return true or false, angular will show/hide the menu according to this value.
https://docs.abp.io/en/abp/latest/Authorization#advanced-topics
For 1 request it asks to resolve AbpPermissionManagement, AbpAuditLogging on the 2nd request it Asks to resolve only AbpAuditLogging for the same page request.
I think this is because the Permissions are cached. So we don't need read it from db for 2nd request.
So according the the code behaviour It should try to resolve connection string for ProductManagement and Intelligence. But it only tries to resolve ProductManagement.
It will only be triggered when Intelligence-related repositories are used and the _currentTenant.Id not be null.
Your entity also need IsMultiTenant
https://github.com/abpframework/abp/blob/c4e92a3431787b1a6727a615768a7a2906a9ba69/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EntityFrameworkCore/EfCoreRepository.cs#L52
hi
These few lines of code return the tenant's default connection string, you can call return await base.ResolveAsync(connectionStringName); for some situations, which will get the host's connection string.
https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/MultiTenantConnectionStringResolver.cs#L76-L79
Issue #2:
The angular permission check happens locally, the server will check all the permissions of the current user or user's role etc and return to angular.
The menu just checks whether the permission is granted.