Browse Source

Auto register permission definition providers.

pull/859/head
Halil ibrahim Kalkan 8 years ago
parent
commit
986a220c07
  1. 24
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs
  2. 10
      framework/src/Volo.Abp.Features/Volo/Abp/Features/AbpFeaturesModule.cs
  3. 5
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs
  4. 9
      framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs

24
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/AbpAuthorizationModule.cs

@ -1,4 +1,6 @@
using Microsoft.AspNetCore.Authorization;
using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;
@ -16,7 +18,7 @@ namespace Volo.Abp.Authorization
public override void PreConfigureServices(ServiceConfigurationContext context)
{
context.Services.OnRegistred(AuthorizationInterceptorRegistrar.RegisterIfNeeded);
//TODO: Auto Add Providers to PermissionOptions just like did in AbpFeaturesModule.AutoAddProviders
AutoAddDefinitionProviders(context.Services);
}
public override void ConfigureServices(ServiceConfigurationContext context)
@ -32,5 +34,23 @@ namespace Volo.Abp.Authorization
options.ValueProviders.Add<ClientPermissionValueProvider>();
});
}
private static void AutoAddDefinitionProviders(IServiceCollection services)
{
var definitionProviders = new List<Type>();
services.OnRegistred(context =>
{
if (typeof(IPermissionDefinitionProvider).IsAssignableFrom(context.ImplementationType))
{
definitionProviders.Add(context.ImplementationType);
}
});
services.Configure<PermissionOptions>(options =>
{
options.DefinitionProviders.AddIfNotContains(definitionProviders);
});
}
}
}

10
framework/src/Volo.Abp.Features/Volo/Abp/Features/AbpFeaturesModule.cs

@ -15,24 +15,24 @@ namespace Volo.Abp.Features
{
public override void PreConfigureServices(ServiceConfigurationContext context)
{
AutoAddProviders(context.Services);
AutoAddDefinitionProviders(context.Services);
}
private static void AutoAddProviders(IServiceCollection services)
private static void AutoAddDefinitionProviders(IServiceCollection services)
{
var featureDefinitionProviders = new List<Type>();
var definitionProviders = new List<Type>();
services.OnRegistred(context =>
{
if (typeof(IFeatureDefinitionProvider).IsAssignableFrom(context.ImplementationType))
{
featureDefinitionProviders.Add(context.ImplementationType);
definitionProviders.Add(context.ImplementationType);
}
});
services.Configure<FeatureOptions>(options =>
{
options.DefinitionProviders.AddIfNotContains(featureDefinitionProviders);
options.DefinitionProviders.AddIfNotContains(definitionProviders);
});
}
}

5
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs

@ -57,11 +57,6 @@ namespace Volo.Abp.AspNetCore.Mvc
});
});
Configure<PermissionOptions>(options =>
{
options.DefinitionProviders.Add<TestPermissionDefinitionProvider>();
});
Configure<VirtualFileSystemOptions>(options =>
{
options.FileSets.AddEmbedded<AbpAspNetCoreMvcTestModule>();

9
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/AbpAuthorizationTestModule.cs

@ -1,5 +1,4 @@
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Authorization.TestServices;
using Volo.Abp.Autofac;
using Volo.Abp.Modularity;
@ -20,13 +19,5 @@ namespace Volo.Abp.Authorization
}
});
}
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<PermissionOptions>(options =>
{
options.DefinitionProviders.TryAdd<AuthorizationTestPermissionDefinitionProvider>();
});
}
}
}
Loading…
Cancel
Save