diff --git a/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/AdminServiceModule.cs b/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/AdminServiceModule.cs
index d5198f7e1..a751ca3fc 100644
--- a/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/AdminServiceModule.cs
+++ b/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/AdminServiceModule.cs
@@ -4,6 +4,7 @@ using LINGYUN.Abp.AspNetCore.Mvc.Localization;
using LINGYUN.Abp.AspNetCore.Mvc.Wrapper;
using LINGYUN.Abp.Auditing;
using LINGYUN.Abp.AuditLogging.Elasticsearch;
+using LINGYUN.Abp.BlobManagement.SettingManagement;
using LINGYUN.Abp.CachingManagement;
using LINGYUN.Abp.CachingManagement.StackExchangeRedis;
using LINGYUN.Abp.Claims.Mapping;
@@ -58,6 +59,7 @@ namespace LINGYUN.Abp.MicroService.AdminService;
typeof(AbpTencentCloudSettingManagementModule),
// typeof(AbpWeChatSettingManagementModule),
typeof(AbpWxPusherSettingManagementModule),
+ typeof(AbpBlobManagementSettingManagementModule),
typeof(AbpSettingManagementApplicationModule),
typeof(AbpSettingManagementHttpApiModule),
diff --git a/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/LINGYUN.Abp.MicroService.AdminService.csproj b/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/LINGYUN.Abp.MicroService.AdminService.csproj
index f6010ebc6..a7916e170 100644
--- a/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/LINGYUN.Abp.MicroService.AdminService.csproj
+++ b/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/LINGYUN.Abp.MicroService.AdminService.csproj
@@ -55,6 +55,7 @@
+
diff --git a/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/SystemGroupSettingDefinitionProvider.cs b/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/SystemGroupSettingDefinitionProvider.cs
new file mode 100644
index 000000000..e964206d8
--- /dev/null
+++ b/aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/SystemGroupSettingDefinitionProvider.cs
@@ -0,0 +1,258 @@
+using LINGYUN.Abp.SettingManagement;
+using Microsoft.Extensions.Localization;
+using Microsoft.Extensions.Options;
+using Volo.Abp;
+using Volo.Abp.Emailing;
+using Volo.Abp.Localization;
+using Volo.Abp.SettingManagement;
+using Volo.Abp.SettingManagement.Localization;
+using Volo.Abp.Settings;
+using Volo.Abp.Timing;
+using ValueType = Volo.Abp.Settings.ValueType;
+
+namespace LINGYUN.Abp.MicroService.AdminService;
+
+public class SystemGroupSettingDefinitionProvider : SettingDefinitionProvider
+{
+ private const string GroupName = "System";
+
+ protected ITimezoneProvider TimezoneProvider { get; }
+ protected AbpLocalizationOptions LocalizationOptions { get; }
+ protected IStringLocalizerFactory StringLocalizerFactory { get; }
+
+ public SystemGroupSettingDefinitionProvider(
+ ITimezoneProvider timezoneProvider,
+ IStringLocalizerFactory stringLocalizerFactory,
+ IOptions localizationOptions)
+ {
+ TimezoneProvider = timezoneProvider;
+ StringLocalizerFactory = stringLocalizerFactory;
+ LocalizationOptions = localizationOptions.Value;
+ }
+
+ public override void Define(ISettingDefinitionContext context)
+ {
+ SetSystemSettingGroup(context);
+ SetEmailSettingGroup(context);
+ }
+
+ private void SetSystemSettingGroup(ISettingDefinitionContext context)
+ {
+ context.GetOrNull(LocalizationSettingNames.DefaultLanguage)
+ ?.WithGroup(GroupName, L("Settings:System"), order: 0)
+ ?.WithParent("Language", L("Settings:System.Language"), order: 0)
+ ?.WithOrder(0)
+ ?.WithOptions(LocalizationOptions.Languages.Select(l => new NameValue(l.DisplayName, l.CultureName)))
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+
+ var timezoneSetting = context.GetOrNull(TimingSettingNames.TimeZone);
+ if (timezoneSetting != null)
+ {
+ var stringLocalizer = StringLocalizerFactory.Create();
+ var timezones = TimeZoneHelper.GetTimezones(TimezoneProvider.GetIanaTimezones());
+ timezones.Insert(0, new NameValue
+ {
+ Name = stringLocalizer["DefaultTimeZone"],
+ Value = "Unspecified"
+ });
+
+ timezoneSetting
+ .WithGroup(
+ GroupName,
+ L("Settings:System"),
+ order: 0,
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.TimeZone])
+ .WithParent("Timing", L("Settings:System.Timing"), order: 0)
+ .WithOrder(1)
+ .WithOptions(timezones)
+ .ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ }
+ }
+
+ private static void SetEmailSettingGroup(ISettingDefinitionContext context)
+ {
+ context.GetOrNull(EmailSettingNames.DefaultFromAddress)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Default",
+ L("Settings:Emailing.Default"),
+ order: 0)
+ ?.WithOrder(0)
+ ?.WithValueType(ValueType.String)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.DefaultFromDisplayName)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Default",
+ L("Settings:Emailing.Default"),
+ order: 0)
+ ?.WithOrder(1)
+ ?.WithValueType(ValueType.String)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+
+ context.GetOrNull(EmailSettingNames.Smtp.Domain)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(0)
+ ?.WithValueType(ValueType.String)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.Smtp.Host)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(1)
+ ?.WithValueType(ValueType.String)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.Smtp.Port)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(2)
+ ?.WithValueType(ValueType.Number)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.Smtp.UserName)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(3)
+ ?.WithValueType(ValueType.String)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.Smtp.Password)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(4)
+ ?.WithValueType(ValueType.String)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.Smtp.EnableSsl)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(5)
+ ?.WithValueType(ValueType.Boolean)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ context.GetOrNull(EmailSettingNames.Smtp.UseDefaultCredentials)
+ ?.WithGroup(
+ "Emailing",
+ L("Settings:Emailing"),
+ order: 1,
+ requiredFeatures: [SettingManagementFeatures.Enable, SettingManagementFeatures.AllowChangingEmailSettings],
+ requiredPermissions: [Volo.Abp.SettingManagement.SettingManagementPermissions.Emailing])
+ ?.WithParent(
+ "Smtp",
+ L("Settings:Emailing.Smtp"),
+ order: 1,
+ requiredPermissions: [AbpSettingManagementPermissions.Settings.Manager])
+ ?.WithOrder(6)
+ ?.WithValueType(ValueType.Boolean)
+ ?.ReplaceProviders(
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName);
+ }
+
+ public static LocalizableString L(string name)
+ {
+ return LocalizableString.Create(name);
+ }
+}
diff --git a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs
index 40b28f7d5..54476f79e 100644
--- a/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs
+++ b/aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs
@@ -8,6 +8,8 @@ namespace LY.MicroService.BackendAdmin.Settings;
// 后台管理项目不引用 Volo.Abp.Account.Application模块,只能自建一个配置
public class AccountSettingDefinitionProvider : SettingDefinitionProvider
{
+ private const string GroupName = "Identity";
+ private const int GroupOrder = 10;
public override void Define(ISettingDefinitionContext context)
{
context.Add(
@@ -18,10 +20,14 @@ public class AccountSettingDefinitionProvider : SettingDefinitionProvider
L("Description:Abp.Account.IsSelfRegistrationEnabled"),
isVisibleToClients: true)
.WithProviders(
- DefaultValueSettingValueProvider.ProviderName,
- ConfigurationSettingValueProvider.ProviderName,
- GlobalSettingValueProvider.ProviderName,
- TenantSettingValueProvider.ProviderName)
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName)
+ .WithGroup(GroupName, L("Settings:Identity"), GroupOrder)
+ .WithParent("Account", L("Settings:Identity.Account"), order: 0)
+ .WithOrder(1)
+ .WithValueType(ValueType.Boolean)
);
context.Add(
@@ -32,10 +38,14 @@ public class AccountSettingDefinitionProvider : SettingDefinitionProvider
L("Description:Abp.Account.EnableLocalLogin"),
isVisibleToClients: true)
.WithProviders(
- DefaultValueSettingValueProvider.ProviderName,
- ConfigurationSettingValueProvider.ProviderName,
- GlobalSettingValueProvider.ProviderName,
- TenantSettingValueProvider.ProviderName)
+ DefaultValueSettingValueProvider.ProviderName,
+ ConfigurationSettingValueProvider.ProviderName,
+ GlobalSettingValueProvider.ProviderName,
+ TenantSettingValueProvider.ProviderName)
+ .WithGroup(GroupName, L("Settings:Identity"), GroupOrder)
+ .WithParent("Account", L("Settings:Identity.Account"), order: 0)
+ .WithOrder(0)
+ .WithValueType(ValueType.Boolean)
);
}