Не применяйте пользовательский PermissionValueProvider в рамках Abp - PullRequest
0 голосов
/ 10 марта 2020

Я добавляю собственный PermissionValueProvider:

public class LegacyPermissionValueProvider : PermissionValueProvider
{
   public LegacyPermissionValueProvider(IPermissionStore permissionStore) : base(permissionStore) { }

    public override string Name => "LegacyPermissionValueProvider";

    public override async Task<PermissionGrantResult> CheckAsync(PermissionValueCheckContext context)
    {
        //checking permissions

        if (...)
        {
            return PermissionGrantResult.Granted;
        }

        return PermissionGrantResult.Undefined;
    } 
}

и регистрирую его в модуле:

public class LegacyApplicationContractsModule : AbpModule
{
    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        Configure<AbpPermissionOptions>(options =>
        {
            options.ValueProviders.Add<LegacyPermissionValueProvider>();
        });
    }
}

, но этот провайдер не используется системой, потому что я зарегистрировался в контейнере DI IPermissionChecker:

context.Services.AddSingleton<IPermissionChecker, PermissionChecker>();

документация ничего не говорит об этом.

Кто-нибудь знает, почему это происходит?

...