Ok. Just wanted to let you know that it's properly supported.
Good on you for digging through the ABP code too.
Hi Rick, have you tried passing null
in tenantIds
array?
await _notificationPublisher.PublishAsync(
AppNotificationNames.MyNotification,
notificationData,
tenantIds: new[] { null });
Duplicate of #8333
You can override FeatureChecker.IsEnabled
(and its async counterpart) and then replace IFeatureChecker
.
Which version of ABP are you on?
IgnoreFeatureCheckForHostUsers
was introduced in ABP v4.2.0.
I recommend that you invalidate via Domain Event handlers, rather than in certain API.
You can take ASP<span></span>.NET Boilerplate's AbpUserPermissionCacheItemInvalidator
as a reference.
Domain Events: https://aspnetboilerplate.com/Pages/Documents/EventBus-Domain-Events
In the join
queries mentioned earlier.
You can cache those too; the effect is probably less than the caching of non-user-specific Role
.
How many users do you have?
The application needs to make 2 DB calls (join
queries) per active user.
You can override AbpUserStore.GetRoles
to aggressively cache each Role
and OrganizationUnitRole
in memory.
This would not reduce the number of queries, since the application still needs to query UserRole
and UserOrganizationUnit
(assuming you have a sizeable number of users), but at least it would be single-table queries.
Do you use UserOrganizationUnit
?
If you don't, then aggressively caching just Role
is sufficient — reducing 2 join
queries to 1 simple query.
From https://aspnetboilerplate.com/Pages/Documents/Feature-Management#ignore-feature-check-for-host-users:
If you enabled Multi-Tenancy, then you can also ignore feature check for host users by configuring it in PreInitialize method of our module as shown below:
Configuration.MultiTenancy.IgnoreFeatureCheckForHostUsers = true;
I was referring to UI Alerts Upon closer inspection it appears that this is for MVC apps only (please correct me if I misunderstand).
Yes, for MVC apps only.
Anyway, UI Alerts are not meant to replace abp.notify
.
How can I change the position and timer on global basis? I don't want to edit every notify message with
{timer: 5000, position: 'center'}
You can modify defaultOptions
in angular/src/assets/abp-web-resources/abp.notify.js.