Browse Source

feat: Add Account Setting Group

pull/1500/head
colin 2 months ago
parent
commit
e309df5c01
  1. 2
      aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/AdminServiceModule.cs
  2. 1
      aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/LINGYUN.Abp.MicroService.AdminService.csproj
  3. 258
      aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/SystemGroupSettingDefinitionProvider.cs
  4. 26
      aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs

2
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),

1
aspnet-core/aspire/LINGYUN.Abp.MicroService.AdminService/LINGYUN.Abp.MicroService.AdminService.csproj

@ -55,6 +55,7 @@
<ProjectReference Include="..\..\framework\mvc\LINGYUN.Abp.AspNetCore.Mvc.Wrapper\LINGYUN.Abp.AspNetCore.Mvc.Wrapper.csproj" />
<ProjectReference Include="..\..\framework\security\LINGYUN.Abp.Claims.Mapping\LINGYUN.Abp.Claims.Mapping.csproj" />
<ProjectReference Include="..\..\framework\wx-pusher\LINGYUN.Abp.WxPusher.SettingManagement\LINGYUN.Abp.WxPusher.SettingManagement.csproj" />
<ProjectReference Include="..\..\modules\blob-management\LINGYUN.Abp.BlobManagement.SettingManagement\LINGYUN.Abp.BlobManagement.SettingManagement.csproj" />
</ItemGroup>
<ItemGroup>

258
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<AbpLocalizationOptions> 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<string>(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<AbpSettingManagementResource>();
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<AbpSettingManagementResource>(name);
}
}

26
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)
);
}

Loading…
Cancel
Save