Browse Source

Merge pull request #24609 from abpframework/SimplePageToolbarContributor

Cache `ShouldAddComponentAsync` result in `SimplePageToolbarContributor`.
pull/24633/head
Engincan VESKE 9 months ago
committed by GitHub
parent
commit
b319238916
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 20
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs

20
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/PageToolbars/SimplePageToolbarContributor.cs

@ -16,6 +16,8 @@ public class SimplePageToolbarContributor : IPageToolbarContributor
public string? RequiredPolicyName { get; }
private bool? _shouldAddComponent;
public SimplePageToolbarContributor(
Type componentType,
Dictionary<string, object?>? arguments = null,
@ -38,15 +40,19 @@ public class SimplePageToolbarContributor : IPageToolbarContributor
protected virtual async Task<bool> ShouldAddComponentAsync(PageToolbarContributionContext context)
{
if (RequiredPolicyName != null)
if (_shouldAddComponent.HasValue)
{
return _shouldAddComponent.Value;
}
if (RequiredPolicyName == null)
{
var authorizationService = context.ServiceProvider.GetRequiredService<IAuthorizationService>();
if (!await authorizationService.IsGrantedAsync(RequiredPolicyName))
{
return false;
}
_shouldAddComponent = true;
return _shouldAddComponent.Value;
}
return true;
var authorizationService = context.ServiceProvider.GetRequiredService<IAuthorizationService>();
_shouldAddComponent = await authorizationService.IsGrantedAsync(RequiredPolicyName);
return _shouldAddComponent.Value;
}
}

Loading…
Cancel
Save