From a438506ae299b360ee39740f235eff6d41a29f52 Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Thu, 17 Mar 2022 18:11:59 +0800 Subject: [PATCH] feat(saas): added saas global feature configuration. --- .../GlobalFeatures/EditionsFeature.cs | 4 ++-- ...yFeatures.cs => GlobalEditionsFeatures.cs} | 6 +++--- ...leFeaturesDictionaryEditionsExtensions.cs} | 16 ++++++++-------- ...BackendAdminHttpApiHostModule.Configure.cs | 13 +++++++++++++ .../BackendAdminHttpApiHostModule.cs | 3 +-- ...onManagementHttpApiHostModule.Configure.cs | 12 ++++++++++++ ...LocalizationManagementHttpApiHostModule.cs | 1 + ...rmManagementHttpApiHostModule.Configure.cs | 12 ++++++++++++ .../PlatformManagementHttpApiHostModule.cs | 1 + ...ltimeMessageHttpApiHostModule.Configure.cs | 13 +++++++++++++ .../RealtimeMessageHttpApiHostModule.cs | 1 + ...skManagementHttpApiHostModule.Configure.cs | 12 ++++++++++++ .../TaskManagementHttpApiHostModule.cs | 1 + ...owManagementHttpApiHostModule.Configure.cs | 19 +++++++++++++++---- .../WorkflowManagementHttpApiHostModule.cs | 1 + ...entityServerHttpApiHostModule.Configure.cs | 12 ++++++++++++ .../IdentityServerHttpApiHostModule.cs | 1 + .../IdentityServerModule.Configure.cs | 12 ++++++++++++ .../IdentityServerModule.cs | 4 +--- 19 files changed, 122 insertions(+), 22 deletions(-) rename aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/{GlobalMultiTenancyFeatures.cs => GlobalEditionsFeatures.cs} (56%) rename aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/{GlobalModuleFeaturesDictionaryMultiTenancyExtensions.cs => GlobalModuleFeaturesDictionaryEditionsExtensions.cs} (50%) diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/EditionsFeature.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/EditionsFeature.cs index f6facbb55..63748c21e 100644 --- a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/EditionsFeature.cs +++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/EditionsFeature.cs @@ -6,9 +6,9 @@ namespace LINGYUN.Abp.MultiTenancy.Editions.GlobalFeatures; [GlobalFeatureName(Name)] public class EditionsFeature : GlobalFeature { - public const string Name = "Abp.MultiTenancy.Editions"; + public const string Name = "Abp.Editions"; - internal EditionsFeature([NotNull] GlobalMultiTenancyFeatures module) + internal EditionsFeature([NotNull] GlobalEditionsFeatures module) : base(module) { } diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/GlobalMultiTenancyFeatures.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/GlobalEditionsFeatures.cs similarity index 56% rename from aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/GlobalMultiTenancyFeatures.cs rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/GlobalEditionsFeatures.cs index 2f5925e86..58ff42b91 100644 --- a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/GlobalMultiTenancyFeatures.cs +++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/LINGYUN/Abp/MultiTenancy/Editions/GlobalFeatures/GlobalEditionsFeatures.cs @@ -3,13 +3,13 @@ using Volo.Abp.GlobalFeatures; namespace LINGYUN.Abp.MultiTenancy.Editions.GlobalFeatures; -public class GlobalMultiTenancyFeatures : GlobalModuleFeatures +public class GlobalEditionsFeatures : GlobalModuleFeatures { - public const string ModuleName = "Abp.MultiTenancy"; + public const string ModuleName = "Abp.Editions"; public EditionsFeature Editions => GetFeature(); - public GlobalMultiTenancyFeatures([NotNull] GlobalFeatureManager featureManager) + public GlobalEditionsFeatures([NotNull] GlobalFeatureManager featureManager) : base(featureManager) { AddFeature(new EditionsFeature(this)); diff --git a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/GlobalModuleFeaturesDictionaryMultiTenancyExtensions.cs b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/GlobalModuleFeaturesDictionaryEditionsExtensions.cs similarity index 50% rename from aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/GlobalModuleFeaturesDictionaryMultiTenancyExtensions.cs rename to aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/GlobalModuleFeaturesDictionaryEditionsExtensions.cs index 9e8e33d4d..b98b5acc8 100644 --- a/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/GlobalModuleFeaturesDictionaryMultiTenancyExtensions.cs +++ b/aspnet-core/modules/tenants/LINGYUN.Abp.MultiTenancy.Editions/Volo/Abp/GlobalFeatures/GlobalModuleFeaturesDictionaryEditionsExtensions.cs @@ -5,28 +5,28 @@ using System.Collections.Generic; namespace Volo.Abp.GlobalFeatures; -public static class GlobalModuleFeaturesDictionaryMultiTenancyExtensions +public static class GlobalModuleFeaturesDictionaryEditionsExtensions { - public static GlobalMultiTenancyFeatures MultiTenancy( + public static GlobalEditionsFeatures Editions( [NotNull] this GlobalModuleFeaturesDictionary modules) { Check.NotNull(modules, nameof(modules)); return modules .GetOrAdd( - GlobalMultiTenancyFeatures.ModuleName, - _ => new GlobalMultiTenancyFeatures(modules.FeatureManager) + GlobalEditionsFeatures.ModuleName, + _ => new GlobalEditionsFeatures(modules.FeatureManager) ) - as GlobalMultiTenancyFeatures; + as GlobalEditionsFeatures; } - public static GlobalModuleFeaturesDictionary MultiTenancy( + public static GlobalModuleFeaturesDictionary Editions( [NotNull] this GlobalModuleFeaturesDictionary modules, - [NotNull] Action configureAction) + [NotNull] Action configureAction) { Check.NotNull(configureAction, nameof(configureAction)); - configureAction(modules.MultiTenancy()); + configureAction(modules.Editions()); return modules; } diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs index e64af5e9c..7c318bd03 100644 --- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.Configure.cs @@ -22,12 +22,14 @@ using Volo.Abp.Authorization.Permissions; using Volo.Abp.Caching; using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Identity.Localization; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement; +using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; namespace LY.MicroService.BackendAdmin; @@ -35,6 +37,17 @@ namespace LY.MicroService.BackendAdmin; public partial class BackendAdminHttpApiHostModule { protected const string DefaultCorsPolicyName = "Default"; + + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "Backend-Admin"; diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs index 13bf93b90..8d576b3a3 100644 --- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/BackendAdminHttpApiHostModule.cs @@ -85,6 +85,7 @@ public partial class BackendAdminHttpApiHostModule : AbpModule var configuration = context.Services.GetConfiguration(); PreConfigureApp(); + PreConfigureFeature(); PreConfigureCAP(configuration); } @@ -106,8 +107,6 @@ public partial class BackendAdminHttpApiHostModule : AbpModule ConfigureCors(context.Services, configuration); ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); - - context.Services.AddAlwaysAllowAuthorization(); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs index bf46fa625..869e2ea22 100644 --- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.Configure.cs @@ -20,10 +20,12 @@ using Volo.Abp; using Volo.Abp.Auditing; using Volo.Abp.Caching; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; @@ -33,6 +35,16 @@ public partial class LocalizationManagementHttpApiHostModule { protected const string DefaultCorsPolicyName = "Default"; + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "Localization"; diff --git a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs index 4cb354a93..f77788036 100644 --- a/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.LocalizationManagement.HttpApi.Host/LocalizationManagementHttpApiHostModule.cs @@ -54,6 +54,7 @@ namespace LY.MicroService.LocalizationManagement var configuration = context.Services.GetConfiguration(); PreConfigureApp(); + PreConfigureFeature(); PreConfigureCAP(configuration); } diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs index 1a5636120..c1ecaef44 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.Configure.cs @@ -25,10 +25,12 @@ using Volo.Abp.BlobStoring; using Volo.Abp.BlobStoring.FileSystem; using Volo.Abp.Caching; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; namespace LY.MicroService.PlatformManagement; @@ -37,6 +39,16 @@ public partial class PlatformManagementHttpApiHostModule { protected const string DefaultCorsPolicyName = "Default"; + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "Platform"; diff --git a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs index 69d373b88..f769fadd5 100644 --- a/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.PlatformManagement.HttpApi.Host/PlatformManagementHttpApiHostModule.cs @@ -81,6 +81,7 @@ public partial class PlatformManagementHttpApiHostModule : AbpModule var configuration = context.Services.GetConfiguration(); PreConfigureApp(); + PreConfigureFeature(); PreConfigureCAP(configuration); } diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs index d871bd169..3a6bb8c74 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.Configure.cs @@ -28,10 +28,12 @@ using Volo.Abp.AspNetCore.Auditing; using Volo.Abp.Auditing; using Volo.Abp.Caching; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; using Volo.Abp.Timing; using Volo.Abp.VirtualFileSystem; using HangfireDashboardOptions = Hangfire.DashboardOptions; @@ -41,6 +43,17 @@ namespace LY.MicroService.RealtimeMessage; public partial class RealtimeMessageHttpApiHostModule { protected static string[] PrefixTokenQueryStrings = new [] { "/signalr-hubs", "/hangfire" }; + + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "MessageService"; diff --git a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs index c74a0d5d1..b9b0d17a9 100644 --- a/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.RealtimeMessage.HttpApi.Host/RealtimeMessageHttpApiHostModule.cs @@ -78,6 +78,7 @@ namespace LY.MicroService.RealtimeMessage var configuration = context.Services.GetConfiguration(); PreConfigureApp(); + PreConfigureFeature(); PreCongifureHangfire(); PreConfigureCAP(configuration); } diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs index 30cc4edb3..f522bcc31 100644 --- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.Configure.cs @@ -21,17 +21,29 @@ using Volo.Abp; using Volo.Abp.Auditing; using Volo.Abp.Caching; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; using Volo.Abp.Quartz; +using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; namespace LY.MicroService.TaskManagement; public partial class TaskManagementHttpApiHostModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "TaskManagement"; diff --git a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs index ec876bf48..ca75692ec 100644 --- a/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/TaskManagementHttpApiHostModule.cs @@ -70,6 +70,7 @@ public partial class TaskManagementHttpApiHostModule : AbpModule var configuration = context.Services.GetConfiguration(); PreConfigureApp(); + PreConfigureFeature(); PreConfigureCAP(configuration); PreConfigureQuartz(configuration); } diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs index b61dec366..60e5e1e40 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.Configure.cs @@ -1,7 +1,8 @@ -using LINGYUN.Abp.ExceptionHandling; +using LINGYUN.Abp.BlobStoring.OssManagement; +using LINGYUN.Abp.ExceptionHandling; using LINGYUN.Abp.ExceptionHandling.Emailing; using LINGYUN.Abp.Serilog.Enrichers.Application; -using LINGYUN.Abp.BlobStoring.OssManagement; +using LINGYUN.Abp.WorkflowCore.Components; using Medallion.Threading; using Medallion.Threading.Redis; using Microsoft.AspNetCore.Authentication.JwtBearer; @@ -19,18 +20,28 @@ using Volo.Abp.Auditing; using Volo.Abp.BlobStoring; using Volo.Abp.Caching; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; -using Volo.Abp.Uow; +using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; -using LINGYUN.Abp.WorkflowCore.Components; namespace LY.MicroService.WorkflowManagement; public partial class WorkflowManagementHttpApiHostModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "WorkflowManagement"; diff --git a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs index cc44829c7..d49f6da37 100644 --- a/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.WorkflowManagement.HttpApi.Host/WorkflowManagementHttpApiHostModule.cs @@ -72,6 +72,7 @@ public partial class WorkflowManagementHttpApiHostModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { PreConfigureApp(); + PreConfigureFeature(); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs index c62646ca1..e878d92cc 100644 --- a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.Configure.cs @@ -23,12 +23,14 @@ using Volo.Abp.Authorization.Permissions; using Volo.Abp.Caching; using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.Identity.Localization; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; using Volo.Abp.PermissionManagement; +using Volo.Abp.Threading; using Volo.Abp.VirtualFileSystem; namespace LY.MicroService.IdentityServer; @@ -37,6 +39,16 @@ public partial class IdentityServerHttpApiHostModule { protected const string DefaultCorsPolicyName = "Default"; + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "Identity-Server-Admin"; diff --git a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs index 92093ae72..0837c4287 100644 --- a/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs +++ b/aspnet-core/services/LY.MicroService.identityServer.HttpApi.Host/IdentityServerHttpApiHostModule.cs @@ -60,6 +60,7 @@ public partial class IdentityServerHttpApiHostModule : AbpModule var configuration = context.Services.GetConfiguration(); PreConfigureApp(); + PreConfigureFeature(); PreConfigureCAP(configuration); PreConfigureIdentity(); } diff --git a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs index ad3c3aad3..218fd02ee 100644 --- a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs +++ b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.Configure.cs @@ -23,11 +23,13 @@ using Volo.Abp.Account.Localization; using Volo.Abp.Auditing; using Volo.Abp.Caching; using Volo.Abp.EntityFrameworkCore; +using Volo.Abp.GlobalFeatures; using Volo.Abp.IdentityServer; using Volo.Abp.Json; using Volo.Abp.Json.SystemTextJson; using Volo.Abp.Localization; using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; using Volo.Abp.UI.Navigation.Urls; using Volo.Abp.VirtualFileSystem; @@ -35,6 +37,16 @@ namespace LY.MicroService.IdentityServer; public partial class IdentityServerModule { + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + private void PreConfigureFeature() + { + OneTimeRunner.Run(() => + { + GlobalFeatureManager.Instance.Modules.Editions().EnableAll(); + }); + } + private void PreConfigureApp() { AbpSerilogEnrichersConsts.ApplicationName = "Identity-Server-STS"; diff --git a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs index ddaf03e60..61a0211cf 100644 --- a/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs +++ b/aspnet-core/services/LY.MicroService.identityServer/IdentityServerModule.cs @@ -28,7 +28,6 @@ using Volo.Abp.Autofac; using Volo.Abp.Caching.StackExchangeRedis; using Volo.Abp.EntityFrameworkCore.MySQL; using Volo.Abp.FeatureManagement.EntityFrameworkCore; -using Volo.Abp.GlobalFeatures; using Volo.Abp.Identity; using Volo.Abp.IdentityServer.Jwt; using Volo.Abp.Modularity; @@ -77,6 +76,7 @@ public partial class IdentityServerModule : AbpModule var hostingEnvironment = context.Services.GetHostingEnvironment(); PreConfigureApp(); + PreConfigureFeature(); PreConfigureCAP(configuration); PreConfigureCertificate(configuration, hostingEnvironment); } @@ -99,8 +99,6 @@ public partial class IdentityServerModule : AbpModule ConfigureCors(context.Services, configuration); ConfigureSeedWorker(context.Services, hostingEnvironment.IsDevelopment()); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); - - GlobalFeatureManager.Instance.Modules.MultiTenancy().EnableAll(); } public override void OnApplicationInitialization(ApplicationInitializationContext context)