Browse Source

enhanced Settings Management

5.0.0-rc.1
cKey 4 years ago
parent
commit
9c933a05db
  1. 59
      aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingAppService.cs
  2. 4
      aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingController.cs
  3. 7
      aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/IAliyunSettingAppService.cs
  4. 48
      aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingProvider.cs
  5. 40
      aspnet-core/modules/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/Settings/AliyunSmsSettingProvider.cs
  6. 5
      aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain.Shared/LINGYUN/Abp/MessageService/Settings/MessageServiceSettingDefinitionProvider.cs
  7. 2
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Domain.Shared/LINGYUN/Abp/OssManagement/Settings/AbpOssManagementSettingDefinitionProvider.cs
  8. 7
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.SettingManagement/LINGYUN/Abp/OssManagement/SettingManagement/IOssManagementSettingAppService.cs
  9. 15
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.SettingManagement/LINGYUN/Abp/OssManagement/SettingManagement/OssManagementSettingAppService.cs
  10. 5
      aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.SettingManagement/LINGYUN/Abp/OssManagement/SettingManagement/OssManagementSettingController.cs
  11. 2
      aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Settings/PlatformSettingDefinitionProvider.cs
  12. 2
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Dto/SettingDetailsDto.cs
  13. 26
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Dto/SettingDto.cs
  14. 23
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Dto/SettingGroupResult.cs
  15. 12
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/IReadonlySettingAppService.cs
  16. 8
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/ISettingAppService.cs
  17. 12
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/IUserSettingAppService.cs
  18. 1
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN.Abp.SettingManagement.Application.csproj
  19. 129
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/SettingAppService.cs
  20. 247
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/UserSettingAppService.cs
  21. 5
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/LINGYUN/Abp/SettingManagement/SettingController.cs
  22. 35
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/LINGYUN/Abp/SettingManagement/UserSettingController.cs
  23. 22
      aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.MiniProgram/LINGYUN/Abp/WeChat/MiniProgram/Settings/WeChatMiniProgramSettingDefinitionProvider.cs
  24. 28
      aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.Official/LINGYUN/Abp/WeChat/Official/Settings/WeChatOfficialSettingDefinitionProvider.cs
  25. 7
      aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.SettingManagement/LINGYUN/Abp/WeChat/SettingManagement/IWeChatSettingAppService.cs
  26. 45
      aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.SettingManagement/LINGYUN/Abp/WeChat/SettingManagement/WeChatSettingAppService.cs
  27. 5
      aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.SettingManagement/LINGYUN/Abp/WeChat/SettingManagement/WeChatSettingController.cs
  28. 4
      aspnet-core/modules/wechat/LINGYUN.Abp.WeChat/LINGYUN/Abp/WeChat/Settings/WeChatSettingDefinitionProvider.cs
  29. 14
      aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs

59
aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingAppService.cs

@ -2,9 +2,7 @@
using LINGYUN.Abp.Aliyun.Settings; using LINGYUN.Abp.Aliyun.Settings;
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.SettingManagement;
using LINGYUN.Abp.Sms.Aliyun.Settings; using LINGYUN.Abp.Sms.Aliyun.Settings;
using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Authorization.Permissions; using Volo.Abp.Authorization.Permissions;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -31,19 +29,19 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
LocalizationResource = typeof(AliyunResource); LocalizationResource = typeof(AliyunResource);
} }
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString()); return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString());
} }
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null); return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null);
} }
protected virtual async Task<ListResultDto<SettingGroupDto>> GetAllForProviderAsync(string providerName, string providerKey) protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string providerKey)
{ {
var settingGroups = new List<SettingGroupDto>(); var settingGroups = new SettingGroupResult();
// 无权限返回空结果,直接报错的话,网关聚合会抛出异常 // 无权限返回空结果,直接报错的话,网关聚合会抛出异常
if (await PermissionChecker.IsGrantedAsync(AliyunSettingPermissionNames.Settings)) if (await PermissionChecker.IsGrantedAsync(AliyunSettingPermissionNames.Settings))
@ -57,42 +55,50 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RegionId), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RegionId),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RegionId, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RegionId, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.AccessKeyId), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.AccessKeyId),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.AccessKeyId, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.AccessKeyId, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.AccessKeySecret), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.AccessKeySecret),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.AccessKeySecret, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.AccessKeySecret, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RamRoleArn), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RamRoleArn),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RamRoleArn, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RamRoleArn, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RoleSessionName), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RoleSessionName),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RoleSessionName, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RoleSessionName, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.Policy), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.Policy),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.Policy, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.Policy, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.UseSecurityTokenService), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.UseSecurityTokenService),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.UseSecurityTokenService, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.UseSecurityTokenService, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
ramSetting.AddDetail( ramSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.DurationSeconds), SettingDefinitionManager.Get(AliyunSettingNames.Authorization.DurationSeconds),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.DurationSeconds, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.DurationSeconds, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
#endregion #endregion
@ -103,44 +109,51 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.Domain), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.Domain),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.Domain, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.Domain, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smsSetting.AddDetail( smsSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.Version), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.Version),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.Version, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.Version, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smsSetting.AddDetail( smsSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.ActionName), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.ActionName),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.ActionName, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.ActionName, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smsSetting.AddDetail( smsSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultPhoneNumber), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultPhoneNumber),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultPhoneNumber, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultPhoneNumber, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smsSetting.AddDetail( smsSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultSignName), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultSignName),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultSignName, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultSignName, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smsSetting.AddDetail( smsSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultTemplateCode), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultTemplateCode),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultTemplateCode, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultTemplateCode, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smsSetting.AddDetail( smsSetting.AddDetail(
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.VisableErrorToClient), SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.VisableErrorToClient),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.VisableErrorToClient, providerName, providerKey), await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.VisableErrorToClient, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
#endregion #endregion
settingGroups.Add(aliyunSettingGroup); settingGroups.AddGroup(aliyunSettingGroup);
} }
return new ListResultDto<SettingGroupDto>(settingGroups); return settingGroups;
} }
} }
} }

4
aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingController.cs

@ -22,14 +22,14 @@ namespace LINGYUN.Abp.Aliyun.SettingManagement
[HttpGet] [HttpGet]
[Route("by-current-tenant")] [Route("by-current-tenant")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await AppService.GetAllForCurrentTenantAsync(); return await AppService.GetAllForCurrentTenantAsync();
} }
[HttpGet] [HttpGet]
[Route("by-global")] [Route("by-global")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await AppService.GetAllForGlobalAsync(); return await AppService.GetAllForGlobalAsync();
} }

7
aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/IAliyunSettingAppService.cs

@ -1,13 +1,8 @@
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.SettingManagement;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
namespace LINGYUN.Abp.Aliyun.SettingManagement namespace LINGYUN.Abp.Aliyun.SettingManagement
{ {
public interface IAliyunSettingAppService public interface IAliyunSettingAppService : IReadonlySettingAppService
{ {
Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync();
Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync();
} }
} }

48
aspnet-core/modules/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingProvider.cs

@ -21,55 +21,87 @@ namespace LINGYUN.Abp.Aliyun.Settings
description: L("Description:AccessKeyId"), description: L("Description:AccessKeyId"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.AccessKeySecret, AliyunSettingNames.Authorization.AccessKeySecret,
displayName: L("DisplayName:AccessKeySecret"), displayName: L("DisplayName:AccessKeySecret"),
description: L("Description:AccessKeySecret"), description: L("Description:AccessKeySecret"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.DurationSeconds, AliyunSettingNames.Authorization.DurationSeconds,
defaultValue: "3600", defaultValue: "3600",
displayName: L("DisplayName:DurationSeconds"), displayName: L("DisplayName:DurationSeconds"),
description: L("Description:DurationSeconds"), description: L("Description:DurationSeconds"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.Policy, AliyunSettingNames.Authorization.Policy,
displayName: L("DisplayName:Policy"), displayName: L("DisplayName:Policy"),
description: L("Description:Policy"), description: L("Description:Policy"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.RamRoleArn, AliyunSettingNames.Authorization.RamRoleArn,
displayName: L("DisplayName:RamRoleArn"), displayName: L("DisplayName:RamRoleArn"),
description: L("Description:RamRoleArn"), description: L("Description:RamRoleArn"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.RegionId, AliyunSettingNames.Authorization.RegionId,
displayName: L("DisplayName:RegionId"), displayName: L("DisplayName:RegionId"),
description: L("Description:RegionId"), description: L("Description:RegionId"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.RoleSessionName, AliyunSettingNames.Authorization.RoleSessionName,
displayName: L("DisplayName:RoleSessionName"), displayName: L("DisplayName:RoleSessionName"),
description: L("Description:RoleSessionName"), description: L("Description:RoleSessionName"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSettingNames.Authorization.UseSecurityTokenService, AliyunSettingNames.Authorization.UseSecurityTokenService,
defaultValue: true.ToString(), defaultValue: true.ToString(),
displayName: L("DisplayName:UseSecurityTokenService"), displayName: L("DisplayName:UseSecurityTokenService"),
description: L("Description:UseSecurityTokenService"), description: L("Description:UseSecurityTokenService"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
}; };
} }

40
aspnet-core/modules/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/Settings/AliyunSmsSettingProvider.cs

@ -21,41 +21,65 @@ namespace LINGYUN.Abp.Sms.Aliyun.Settings
displayName: L("DisplayName:ActionName"), displayName: L("DisplayName:ActionName"),
description: L("Description:ActionName"), description: L("Description:ActionName"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSmsSettingNames.Sms.DefaultSignName, AliyunSmsSettingNames.Sms.DefaultSignName,
displayName: L("DisplayName:DefaultSignName"), displayName: L("DisplayName:DefaultSignName"),
description: L("Description:DefaultSignName"), description: L("Description:DefaultSignName"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSmsSettingNames.Sms.DefaultTemplateCode, AliyunSmsSettingNames.Sms.DefaultTemplateCode,
displayName: L("DisplayName:DefaultTemplateCode"), displayName: L("DisplayName:DefaultTemplateCode"),
description: L("Description:DefaultTemplateCode"), description: L("Description:DefaultTemplateCode"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true isEncrypted: true
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSmsSettingNames.Sms.DefaultPhoneNumber, AliyunSmsSettingNames.Sms.DefaultPhoneNumber,
displayName: L("DisplayName:DefaultPhoneNumber"), displayName: L("DisplayName:DefaultPhoneNumber"),
description: L("Description:DefaultPhoneNumber"), description: L("Description:DefaultPhoneNumber"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSmsSettingNames.Sms.Domain, AliyunSmsSettingNames.Sms.Domain,
defaultValue: "dysmsapi.aliyuncs.com", defaultValue: "dysmsapi.aliyuncs.com",
displayName: L("DisplayName:Domain"), displayName: L("DisplayName:Domain"),
description: L("Description:Domain"), description: L("Description:Domain"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSmsSettingNames.Sms.Version, AliyunSmsSettingNames.Sms.Version,
defaultValue: "2017-05-25", defaultValue: "2017-05-25",
displayName: L("DisplayName:Version"), displayName: L("DisplayName:Version"),
description: L("Description:Version"), description: L("Description:Version"),
isVisibleToClients: false isVisibleToClients: false
), )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
AliyunSmsSettingNames.Sms.VisableErrorToClient, AliyunSmsSettingNames.Sms.VisableErrorToClient,
defaultValue: false.ToString(), defaultValue: false.ToString(),
@ -63,6 +87,10 @@ namespace LINGYUN.Abp.Sms.Aliyun.Settings
description: L("Description:VisableErrorToClient"), description: L("Description:VisableErrorToClient"),
isVisibleToClients: false isVisibleToClients: false
) )
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
}; };
} }

5
aspnet-core/modules/message/LINGYUN.Abp.MessageService.Domain.Shared/LINGYUN/Abp/MessageService/Settings/MessageServiceSettingDefinitionProvider.cs

@ -17,8 +17,9 @@ namespace LINGYUN.Abp.MessageService.Settings
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: false) isEncrypted: false)
.WithProviders( .WithProviders(
GlobalSettingValueProvider.ProviderName, DefaultValueSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName) GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
); );
} }

2
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.Domain.Shared/LINGYUN/Abp/OssManagement/Settings/AbpOssManagementSettingDefinitionProvider.cs

@ -22,6 +22,7 @@ namespace LINGYUN.Abp.OssManagement.Settings
description: L("Description:FileLimitLength"), description: L("Description:FileLimitLength"),
isVisibleToClients: true) isVisibleToClients: true)
.WithProviders( .WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName, GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName), TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
@ -31,6 +32,7 @@ namespace LINGYUN.Abp.OssManagement.Settings
description: L("Description:AllowFileExtensions"), description: L("Description:AllowFileExtensions"),
isVisibleToClients: true) isVisibleToClients: true)
.WithProviders( .WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName, GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName), TenantSettingValueProvider.ProviderName),
}; };

7
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.SettingManagement/LINGYUN/Abp/OssManagement/SettingManagement/IOssManagementSettingAppService.cs

@ -1,13 +1,8 @@
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.SettingManagement;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
namespace LINGYUN.Abp.OssManagement.SettingManagement namespace LINGYUN.Abp.OssManagement.SettingManagement
{ {
public interface IOssManagementSettingAppService public interface IOssManagementSettingAppService : IReadonlySettingAppService
{ {
Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync();
Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync();
} }
} }

15
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.SettingManagement/LINGYUN/Abp/OssManagement/SettingManagement/OssManagementSettingAppService.cs

@ -2,9 +2,7 @@
using LINGYUN.Abp.OssManagement.Permissions; using LINGYUN.Abp.OssManagement.Permissions;
using LINGYUN.Abp.OssManagement.Settings; using LINGYUN.Abp.OssManagement.Settings;
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.SettingManagement;
using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Authorization.Permissions; using Volo.Abp.Authorization.Permissions;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -31,24 +29,23 @@ namespace LINGYUN.Abp.OssManagement.SettingManagement
LocalizationResource = typeof(AbpOssManagementResource); LocalizationResource = typeof(AbpOssManagementResource);
} }
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString()); return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString());
} }
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null); return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null);
} }
protected virtual async Task<ListResultDto<SettingGroupDto>> GetAllForProviderAsync(string providerName, string providerKey) protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string providerKey)
{ {
var settingGroups = new List<SettingGroupDto>(); var settingGroups = new SettingGroupResult();
// 无权限返回空结果,直接报错的话,网关聚合会抛出异常 // 无权限返回空结果,直接报错的话,网关聚合会抛出异常
if (await PermissionChecker.IsGrantedAsync(AbpOssManagementPermissions.OssObject.Default)) if (await PermissionChecker.IsGrantedAsync(AbpOssManagementPermissions.OssObject.Default))
{ {
var ossSettingGroup = new SettingGroupDto(L["DisplayName:OssManagement"], L["Description:OssManagement"]); var ossSettingGroup = new SettingGroupDto(L["DisplayName:OssManagement"], L["Description:OssManagement"]);
var ossObjectSetting = ossSettingGroup.AddSetting(L["DisplayName:OssObject"], L["Description:OssObject"]); var ossObjectSetting = ossSettingGroup.AddSetting(L["DisplayName:OssObject"], L["Description:OssObject"]);
@ -64,10 +61,10 @@ namespace LINGYUN.Abp.OssManagement.SettingManagement
await SettingManager.GetOrNullAsync(AbpOssManagementSettingNames.AllowFileExtensions, providerName, providerKey), await SettingManager.GetOrNullAsync(AbpOssManagementSettingNames.AllowFileExtensions, providerName, providerKey),
ValueType.String); ValueType.String);
settingGroups.Add(ossSettingGroup); settingGroups.AddGroup(ossSettingGroup);
} }
return new ListResultDto<SettingGroupDto>(settingGroups); return settingGroups;
} }
} }
} }

5
aspnet-core/modules/oss-management/LINGYUN.Abp.OssManagement.SettingManagement/LINGYUN/Abp/OssManagement/SettingManagement/OssManagementSettingController.cs

@ -2,7 +2,6 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Abp.OssManagement.SettingManagement namespace LINGYUN.Abp.OssManagement.SettingManagement
@ -22,14 +21,14 @@ namespace LINGYUN.Abp.OssManagement.SettingManagement
[HttpGet] [HttpGet]
[Route("by-current-tenant")] [Route("by-current-tenant")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await WeChatSettingAppService.GetAllForCurrentTenantAsync(); return await WeChatSettingAppService.GetAllForCurrentTenantAsync();
} }
[HttpGet] [HttpGet]
[Route("by-global")] [Route("by-global")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await WeChatSettingAppService.GetAllForGlobalAsync(); return await WeChatSettingAppService.GetAllForGlobalAsync();
} }

2
aspnet-core/modules/platform/LINGYUN.Platform.Domain/LINGYUN/Platform/Settings/PlatformSettingDefinitionProvider.cs

@ -23,6 +23,7 @@ namespace LINGYUN.Platform.Settings
description: L("Description:VersionFileLimitLength"), description: L("Description:VersionFileLimitLength"),
isVisibleToClients: true) isVisibleToClients: true)
.WithProviders( .WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName, GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName), TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
@ -32,6 +33,7 @@ namespace LINGYUN.Platform.Settings
description: L("Description:AllowVersionFileExtensions"), description: L("Description:AllowVersionFileExtensions"),
isVisibleToClients: true) isVisibleToClients: true)
.WithProviders( .WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName, GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName), TenantSettingValueProvider.ProviderName),
}; };

2
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Dto/SettingDetailsDto.cs

@ -26,6 +26,8 @@ namespace LINGYUN.Abp.SettingManagement
/// </summary> /// </summary>
public List<OptionDto> Options { get; set; } = new List<OptionDto>(); public List<OptionDto> Options { get; set; } = new List<OptionDto>();
public List<string> Providers { get; set; } = new List<string>();
public SettingDetailsDto WithSlot(string slot) public SettingDetailsDto WithSlot(string slot)
{ {
Slot = slot; Slot = slot;

26
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Dto/SettingDto.cs

@ -1,5 +1,7 @@
using Microsoft.Extensions.Localization; using Microsoft.Extensions.Localization;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using Volo.Abp.Settings; using Volo.Abp.Settings;
namespace LINGYUN.Abp.SettingManagement namespace LINGYUN.Abp.SettingManagement
@ -12,6 +14,8 @@ namespace LINGYUN.Abp.SettingManagement
public List<SettingDetailsDto> Details { get; set; } = new List<SettingDetailsDto>(); public List<SettingDetailsDto> Details { get; set; } = new List<SettingDetailsDto>();
public SettingDto() public SettingDto()
{ {
@ -21,10 +25,22 @@ namespace LINGYUN.Abp.SettingManagement
{ {
DisplayName = displayName; DisplayName = displayName;
Description = description; Description = description;
} }
public SettingDetailsDto AddDetail(SettingDefinition setting, IStringLocalizerFactory factory, string value, ValueType type) #nullable enable
public SettingDetailsDto? AddDetail(
SettingDefinition setting,
IStringLocalizerFactory factory,
string value,
ValueType type,
string keepProvider = "")
{ {
if (setting.Providers.Any() &&
!keepProvider.IsNullOrWhiteSpace() &&
!setting.Providers.Any(p => p.Equals(keepProvider)))
{
return null;
}
var detail = new SettingDetailsDto() var detail = new SettingDetailsDto()
{ {
DefaultValue = setting.DefaultValue, DefaultValue = setting.DefaultValue,
@ -35,9 +51,11 @@ namespace LINGYUN.Abp.SettingManagement
Value = value, Value = value,
ValueType = type ValueType = type
}; };
detail.Providers.AddRange(setting.Providers);
Details.Add(detail); Details.Add(detail);
return detail; return detail;
} }
} }
#nullable disable
} }

23
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Dto/SettingGroupResult.cs

@ -0,0 +1,23 @@
using System.Collections.Generic;
using System.Linq;
namespace LINGYUN.Abp.SettingManagement
{
public class SettingGroupResult
{
public IList<SettingGroupDto> Items { get; }
public SettingGroupResult()
{
Items = new List<SettingGroupDto>();
}
public void AddGroup(SettingGroupDto group)
{
if (group.Settings.Any(g => g.Details.Any()))
{
Items.Add(group);
}
}
}
}

12
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/IReadonlySettingAppService.cs

@ -0,0 +1,12 @@
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace LINGYUN.Abp.SettingManagement
{
public interface IReadonlySettingAppService : IApplicationService
{
Task<SettingGroupResult> GetAllForGlobalAsync();
Task<SettingGroupResult> GetAllForCurrentTenantAsync();
}
}

8
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/ISettingAppService.cs

@ -1,17 +1,11 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
namespace LINGYUN.Abp.SettingManagement namespace LINGYUN.Abp.SettingManagement
{ {
public interface ISettingAppService : IApplicationService public interface ISettingAppService : IReadonlySettingAppService
{ {
Task SetGlobalAsync(UpdateSettingsDto input); Task SetGlobalAsync(UpdateSettingsDto input);
Task SetCurrentTenantAsync(UpdateSettingsDto input); Task SetCurrentTenantAsync(UpdateSettingsDto input);
Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync();
Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync();
} }
} }

12
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/IUserSettingAppService.cs

@ -0,0 +1,12 @@
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
namespace LINGYUN.Abp.SettingManagement
{
public interface IUserSettingAppService : IApplicationService
{
Task SetCurrentUserAsync(UpdateSettingsDto input);
Task<SettingGroupResult> GetAllForCurrentUserAsync();
}
}

1
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN.Abp.SettingManagement.Application.csproj

@ -5,6 +5,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<RootNamespace />
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

129
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/SettingAppService.cs

@ -1,13 +1,14 @@
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Account.Settings; using Volo.Abp.Account.Settings;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Emailing; using Volo.Abp.Emailing;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Features;
using Volo.Abp.Identity.Settings; using Volo.Abp.Identity.Settings;
using Volo.Abp.Localization; using Volo.Abp.Localization;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -16,9 +17,6 @@ using Volo.Abp.SettingManagement.Localization;
using Volo.Abp.Settings; using Volo.Abp.Settings;
using Volo.Abp.Timing; using Volo.Abp.Timing;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
using Volo.Abp.Features;
namespace LINGYUN.Abp.SettingManagement namespace LINGYUN.Abp.SettingManagement
{ {
@ -92,18 +90,18 @@ namespace LINGYUN.Abp.SettingManagement
//[Authorize] //[Authorize]
[AllowAnonymous] [AllowAnonymous]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString()); return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString());
} }
[AllowAnonymous] [AllowAnonymous]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null); return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null);
} }
protected virtual async Task<ListResultDto<SettingGroupDto>> GetAllForProviderAsync(string providerName, string providerKey) protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string providerKey)
{ {
/* /*
* 2020-11-19 * 2020-11-19
@ -117,7 +115,9 @@ namespace LINGYUN.Abp.SettingManagement
* ,, * ,,
*/ */
var settingGroups = new List<SettingGroupDto>(); // 2021-12-11 重新约定返回格式, 当用户明确只需要对应提供者设置才返回,否则为空数组
var settingGroups = new SettingGroupResult();
#region 系统设置 #region 系统设置
@ -128,16 +128,18 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(LocalizationSettingNames.DefaultLanguage), SettingDefinitionManager.Get(LocalizationSettingNames.DefaultLanguage),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage, providerName, providerKey), await SettingManager.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage, providerName, providerKey),
ValueType.Option) ValueType.Option,
.AddOptions(LocalizationOptions.Languages.Select(l => new OptionDto(l.DisplayName, l.CultureName))); providerName)
?.AddOptions(LocalizationOptions.Languages.Select(l => new OptionDto(l.DisplayName, l.CultureName)));
// 时区 // 时区
var timingSetting = sysSettingGroup.AddSetting(L["DisplayName:System.Timing"], L["Description:System.Timing"]); var timingSetting = sysSettingGroup.AddSetting(L["DisplayName:System.Timing"], L["Description:System.Timing"]);
timingSetting.AddDetail( timingSetting.AddDetail(
SettingDefinitionManager.Get(TimingSettingNames.TimeZone), SettingDefinitionManager.Get(TimingSettingNames.TimeZone),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(TimingSettingNames.TimeZone, providerName, providerKey), await SettingManager.GetOrNullAsync(TimingSettingNames.TimeZone, providerName, providerKey),
ValueType.String); ValueType.String,
settingGroups.Add(sysSettingGroup); providerName);
settingGroups.AddGroup(sysSettingGroup);
#endregion #endregion
@ -152,14 +154,16 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(AccountSettingNames.EnableLocalLogin), SettingDefinitionManager.Get(AccountSettingNames.EnableLocalLogin),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AccountSettingNames.EnableLocalLogin, providerName, providerKey), await SettingManager.GetOrNullAsync(AccountSettingNames.EnableLocalLogin, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
accountSetting.AddDetail( accountSetting.AddDetail(
SettingDefinitionManager.Get(AccountSettingNames.IsSelfRegistrationEnabled), SettingDefinitionManager.Get(AccountSettingNames.IsSelfRegistrationEnabled),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AccountSettingNames.IsSelfRegistrationEnabled, providerName, providerKey), await SettingManager.GetOrNullAsync(AccountSettingNames.IsSelfRegistrationEnabled, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
settingGroups.Add(securitySettingGroup); settingGroups.AddGroup(securitySettingGroup);
#endregion #endregion
@ -175,17 +179,20 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(IdentitySettingNames.Lockout.AllowedForNewUsers), SettingDefinitionManager.Get(IdentitySettingNames.Lockout.AllowedForNewUsers),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Lockout.AllowedForNewUsers, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Lockout.AllowedForNewUsers, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
lockoutSetting.AddDetail( lockoutSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Lockout.LockoutDuration), SettingDefinitionManager.Get(IdentitySettingNames.Lockout.LockoutDuration),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Lockout.LockoutDuration, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Lockout.LockoutDuration, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
lockoutSetting.AddDetail( lockoutSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Lockout.MaxFailedAccessAttempts), SettingDefinitionManager.Get(IdentitySettingNames.Lockout.MaxFailedAccessAttempts),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Lockout.MaxFailedAccessAttempts, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Lockout.MaxFailedAccessAttempts, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
#endregion #endregion
@ -196,37 +203,44 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(IdentitySettingNames.User.IsEmailUpdateEnabled), SettingDefinitionManager.Get(IdentitySettingNames.User.IsEmailUpdateEnabled),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.User.IsEmailUpdateEnabled, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.User.IsEmailUpdateEnabled, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
userSetting.AddDetail( userSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.User.IsUserNameUpdateEnabled), SettingDefinitionManager.Get(IdentitySettingNames.User.IsUserNameUpdateEnabled),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.User.IsUserNameUpdateEnabled, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.User.IsUserNameUpdateEnabled, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
userSetting.AddDetail( userSetting.AddDetail(
SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsNewUserRegister), SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsNewUserRegister),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsNewUserRegister, providerName, providerKey), await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsNewUserRegister, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
userSetting.AddDetail( userSetting.AddDetail(
SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsResetPassword), SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsResetPassword),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsResetPassword, providerName, providerKey), await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsResetPassword, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
userSetting.AddDetail( userSetting.AddDetail(
SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsUserSignin), SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsUserSignin),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsUserSignin, providerName, providerKey), await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsUserSignin, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
userSetting.AddDetail( userSetting.AddDetail(
SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsPhoneNumberConfirmed), SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsPhoneNumberConfirmed),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsPhoneNumberConfirmed, providerName, providerKey), await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsPhoneNumberConfirmed, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
userSetting.AddDetail( userSetting.AddDetail(
SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsRepetInterval), SettingDefinitionManager.Get(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsRepetInterval),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsRepetInterval, providerName, providerKey), await SettingManager.GetOrNullAsync(LINGYUN.Abp.Identity.Settings.IdentitySettingNames.User.SmsRepetInterval, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
#endregion #endregion
@ -237,17 +251,20 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(IdentitySettingNames.SignIn.EnablePhoneNumberConfirmation), SettingDefinitionManager.Get(IdentitySettingNames.SignIn.EnablePhoneNumberConfirmation),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.EnablePhoneNumberConfirmation, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.EnablePhoneNumberConfirmation, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
signinSetting.AddDetail( signinSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.SignIn.RequireConfirmedEmail), SettingDefinitionManager.Get(IdentitySettingNames.SignIn.RequireConfirmedEmail),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.RequireConfirmedEmail, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.RequireConfirmedEmail, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
signinSetting.AddDetail( signinSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber), SettingDefinitionManager.Get(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
#endregion #endregion
@ -258,32 +275,38 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireDigit), SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireDigit),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireDigit, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireDigit, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
passwordSetting.AddDetail( passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequiredLength), SettingDefinitionManager.Get(IdentitySettingNames.Password.RequiredLength),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequiredLength, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequiredLength, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
passwordSetting.AddDetail( passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequiredUniqueChars), SettingDefinitionManager.Get(IdentitySettingNames.Password.RequiredUniqueChars),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequiredUniqueChars, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequiredUniqueChars, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
passwordSetting.AddDetail( passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireLowercase), SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireLowercase),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireLowercase, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireLowercase, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
passwordSetting.AddDetail( passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireUppercase), SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireUppercase),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireUppercase, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireUppercase, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
passwordSetting.AddDetail( passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireNonAlphanumeric), SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireNonAlphanumeric),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireNonAlphanumeric, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireNonAlphanumeric, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
#endregion #endregion
@ -314,9 +337,10 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(IdentitySettingNames.OrganizationUnit.MaxUserMembershipCount), SettingDefinitionManager.Get(IdentitySettingNames.OrganizationUnit.MaxUserMembershipCount),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.OrganizationUnit.MaxUserMembershipCount, providerName, providerKey), await SettingManager.GetOrNullAsync(IdentitySettingNames.OrganizationUnit.MaxUserMembershipCount, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
settingGroups.Add(identitySetting); settingGroups.AddGroup(identitySetting);
#endregion #endregion
@ -330,55 +354,64 @@ namespace LINGYUN.Abp.SettingManagement
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress), SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromAddress, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromAddress, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
defaultMailSetting.AddDetail( defaultMailSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromDisplayName), SettingDefinitionManager.Get(EmailSettingNames.DefaultFromDisplayName),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]); var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl), SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials), SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain), SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host), SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port), SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey),
ValueType.Number); ValueType.Number,
providerName);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName), SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
smtpSetting.AddDetail( smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password), SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey), await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
settingGroups.Add(emailSettingGroup); settingGroups.AddGroup(emailSettingGroup);
#endregion #endregion
return new ListResultDto<SettingGroupDto>(settingGroups); return settingGroups;
} }
protected virtual async Task CheckFeatureAsync() protected virtual async Task CheckFeatureAsync()

247
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application/LINGYUN/Abp/SettingManagement/UserSettingAppService.cs

@ -0,0 +1,247 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.Extensions.Options;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Application.Services;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
using Volo.Abp.Caching;
using Volo.Abp.Emailing;
using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Features;
using Volo.Abp.Identity.Settings;
using Volo.Abp.Localization;
using Volo.Abp.SettingManagement;
using Volo.Abp.SettingManagement.Localization;
using Volo.Abp.Settings;
using Volo.Abp.Timing;
using Volo.Abp.Users;
namespace LINGYUN.Abp.SettingManagement
{
[Authorize]
public class UserSettingAppService : ApplicationService, IUserSettingAppService
{
protected AbpLocalizationOptions LocalizationOptions { get; }
protected IDistributedEventBus EventBus { get; }
protected ISettingManager SettingManager { get; }
protected ISettingDefinitionManager SettingDefinitionManager { get; }
protected IDistributedCache<SettingCacheItem> Cache { get; }
public UserSettingAppService(
IDistributedEventBus eventBus,
ISettingManager settingManager,
IDistributedCache<SettingCacheItem> cache,
IOptions<AbpLocalizationOptions> localizationOptions,
ISettingDefinitionManager settingDefinitionManager)
{
Cache = cache;
EventBus = eventBus;
SettingManager = settingManager;
SettingDefinitionManager = settingDefinitionManager;
LocalizationOptions = localizationOptions.Value;
LocalizationResource = typeof(AbpSettingManagementResource);
}
public virtual async Task SetCurrentUserAsync(UpdateSettingsDto input)
{
// 增加特性检查
await CheckFeatureAsync();
foreach (var setting in input.Settings)
{
await SettingManager.SetForCurrentUserAsync(setting.Name, setting.Value);
}
CurrentUnitOfWork.OnCompleted(async () =>
{
// 发送刷新用户缓存事件
await EventBus.PublishAsync(new CurrentApplicationConfigurationCacheResetEventData());
});
await CurrentUnitOfWork.SaveChangesAsync();
}
public virtual async Task<SettingGroupResult> GetAllForCurrentUserAsync()
{
return await GetAllForProviderAsync(UserSettingValueProvider.ProviderName, CurrentUser.GetId().ToString());
}
protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string providerKey)
{
var settingGroups = new SettingGroupResult();
#region 系统设置
var sysSettingGroup = new SettingGroupDto(L["DisplayName:System"], L["Description:System"]);
// 语言
var languageSetting = sysSettingGroup.AddSetting(L["DisplayName:System.Language"], L["Description:System.Language"]);
languageSetting.AddDetail(
SettingDefinitionManager.Get(LocalizationSettingNames.DefaultLanguage),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(LocalizationSettingNames.DefaultLanguage, providerName, providerKey),
ValueType.Option,
providerName)
?.AddOptions(LocalizationOptions.Languages.Select(l => new OptionDto(l.DisplayName, l.CultureName)));
// 时区
var timingSetting = sysSettingGroup.AddSetting(L["DisplayName:System.Timing"], L["Description:System.Timing"]);
timingSetting.AddDetail(
SettingDefinitionManager.Get(TimingSettingNames.TimeZone),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(TimingSettingNames.TimeZone, providerName, providerKey),
ValueType.String,
providerName);
settingGroups.AddGroup(sysSettingGroup);
#endregion
#region 身份标识设置
// 身份标识设置
var identitySetting = new SettingGroupDto(L["DisplayName:Identity"], L["Description:Identity"]);
#region 登录
var signinSetting = identitySetting.AddSetting(L["DisplayName:Identity.SignIn"], L["Description:Identity.SignIn"]);
signinSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.SignIn.EnablePhoneNumberConfirmation),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.EnablePhoneNumberConfirmation, providerName, providerKey),
ValueType.Boolean,
providerName);
signinSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.SignIn.RequireConfirmedEmail),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.RequireConfirmedEmail, providerName, providerKey),
ValueType.Boolean,
providerName);
signinSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.SignIn.RequireConfirmedPhoneNumber, providerName, providerKey),
ValueType.Boolean,
providerName);
#endregion
#region 密码
var passwordSetting = identitySetting.AddSetting(L["DisplayName:Identity.Password"], L["Description:Identity.Password"]);
passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireDigit),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireDigit, providerName, providerKey),
ValueType.Boolean,
providerName);
passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequiredLength),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequiredLength, providerName, providerKey),
ValueType.Number,
providerName);
passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequiredUniqueChars),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequiredUniqueChars, providerName, providerKey),
ValueType.Number,
providerName);
passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireLowercase),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireLowercase, providerName, providerKey),
ValueType.Boolean,
providerName);
passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireUppercase),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireUppercase, providerName, providerKey),
ValueType.Boolean,
providerName);
passwordSetting.AddDetail(
SettingDefinitionManager.Get(IdentitySettingNames.Password.RequireNonAlphanumeric),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(IdentitySettingNames.Password.RequireNonAlphanumeric, providerName, providerKey),
ValueType.Boolean,
providerName);
#endregion
settingGroups.AddGroup(identitySetting);
#endregion
#region 邮件设置
var emailSettingGroup = new SettingGroupDto(L["DisplayName:Emailing"], L["Description:Emailing"]);
var defaultMailSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Default"], L["Description:Emailing.Default"]);
defaultMailSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromAddress),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromAddress, providerName, providerKey),
ValueType.String,
providerName);
defaultMailSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.DefaultFromDisplayName),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.DefaultFromDisplayName, providerName, providerKey),
ValueType.String,
providerName);
var smtpSetting = emailSettingGroup.AddSetting(L["DisplayName:Emailing.Smtp"], L["Description:Emailing.Smtp"]);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.EnableSsl),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.EnableSsl, providerName, providerKey),
ValueType.Boolean,
providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UseDefaultCredentials),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UseDefaultCredentials, providerName, providerKey),
ValueType.Boolean,
providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Domain),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Domain, providerName, providerKey),
ValueType.String,
providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Host),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Host, providerName, providerKey),
ValueType.String,
providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Port),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Port, providerName, providerKey),
ValueType.Number,
providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.UserName),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.UserName, providerName, providerKey),
ValueType.String,
providerName);
smtpSetting.AddDetail(
SettingDefinitionManager.Get(EmailSettingNames.Smtp.Password),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(EmailSettingNames.Smtp.Password, providerName, providerKey),
ValueType.String,
providerName);
settingGroups.AddGroup(emailSettingGroup);
#endregion
return settingGroups;
}
protected virtual async Task CheckFeatureAsync()
{
await FeatureChecker.CheckEnabledAsync(SettingManagementFeatures.Enable);
}
}
}

5
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/LINGYUN/Abp/SettingManagement/SettingController.cs

@ -1,7 +1,6 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Abp.SettingManagement namespace LINGYUN.Abp.SettingManagement
@ -33,14 +32,14 @@ namespace LINGYUN.Abp.SettingManagement
[HttpGet] [HttpGet]
[Route("by-global")] [Route("by-global")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await _settingAppService.GetAllForGlobalAsync(); return await _settingAppService.GetAllForGlobalAsync();
} }
[HttpGet] [HttpGet]
[Route("by-current-tenant")] [Route("by-current-tenant")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await _settingAppService.GetAllForCurrentTenantAsync(); return await _settingAppService.GetAllForCurrentTenantAsync();
} }

35
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.HttpApi/LINGYUN/Abp/SettingManagement/UserSettingController.cs

@ -0,0 +1,35 @@
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Abp.SettingManagement
{
[RemoteService(Name = AbpSettingManagementRemoteServiceConsts.RemoteServiceName)]
[Area("settingManagement")]
[Route("api/setting-management/settings")]
public class UserSettingController : AbpController, IUserSettingAppService
{
private readonly IUserSettingAppService _service;
public UserSettingController(
IUserSettingAppService service)
{
_service = service;
}
[HttpGet]
[Route("by-current-user")]
public virtual async Task<SettingGroupResult> GetAllForCurrentUserAsync()
{
return await _service.GetAllForCurrentUserAsync();
}
[HttpPut]
[Route("change-current-user")]
public virtual async Task SetCurrentUserAsync(UpdateSettingsDto input)
{
await _service.SetCurrentUserAsync(input);
}
}
}

22
aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.MiniProgram/LINGYUN/Abp/WeChat/MiniProgram/Settings/WeChatMiniProgramSettingDefinitionProvider.cs

@ -14,25 +14,41 @@ namespace LINGYUN.Abp.WeChat.MiniProgram.Settings
L("DisplayName:WeChat.MiniProgram.AppId"), L("DisplayName:WeChat.MiniProgram.AppId"),
L("Description:WeChat.MiniProgram.AppId"), L("Description:WeChat.MiniProgram.AppId"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true), isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatMiniProgramSettingNames.AppSecret, "", WeChatMiniProgramSettingNames.AppSecret, "",
L("DisplayName:WeChat.MiniProgram.AppSecret"), L("DisplayName:WeChat.MiniProgram.AppSecret"),
L("Description:WeChat.MiniProgram.AppSecret"), L("Description:WeChat.MiniProgram.AppSecret"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true), isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatMiniProgramSettingNames.Token, "", WeChatMiniProgramSettingNames.Token, "",
L("DisplayName:WeChat.MiniProgram.Token"), L("DisplayName:WeChat.MiniProgram.Token"),
L("Description:WeChat.MiniProgram.Token"), L("Description:WeChat.MiniProgram.Token"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true), isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatMiniProgramSettingNames.EncodingAESKey, "", WeChatMiniProgramSettingNames.EncodingAESKey, "",
L("DisplayName:WeChat.MiniProgram.EncodingAESKey"), L("DisplayName:WeChat.MiniProgram.EncodingAESKey"),
L("Description:WeChat.MiniProgram.EncodingAESKey"), L("Description:WeChat.MiniProgram.EncodingAESKey"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true) isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
); );
} }

28
aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.Official/LINGYUN/Abp/WeChat/Official/Settings/WeChatOfficialSettingDefinitionProvider.cs

@ -14,31 +14,51 @@ namespace LINGYUN.Abp.WeChat.Official.Settings
L("DisplayName:WeChat.Official.AppId"), L("DisplayName:WeChat.Official.AppId"),
L("Description:WeChat.Official.AppId"), L("Description:WeChat.Official.AppId"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true), isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatOfficialSettingNames.AppSecret, "", WeChatOfficialSettingNames.AppSecret, "",
L("DisplayName:WeChat.Official.AppSecret"), L("DisplayName:WeChat.Official.AppSecret"),
L("Description:WeChat.Official.AppSecret"), L("Description:WeChat.Official.AppSecret"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true), isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatOfficialSettingNames.Url, "", WeChatOfficialSettingNames.Url, "",
L("DisplayName:WeChat.Official.Url"), L("DisplayName:WeChat.Official.Url"),
L("Description:WeChat.Official.Url"), L("Description:WeChat.Official.Url"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: false), isEncrypted: false)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatOfficialSettingNames.Token, "", WeChatOfficialSettingNames.Token, "",
L("DisplayName:WeChat.Official.Token"), L("DisplayName:WeChat.Official.Token"),
L("Description:WeChat.Official.Token"), L("Description:WeChat.Official.Token"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true), isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition( new SettingDefinition(
WeChatOfficialSettingNames.EncodingAESKey, "", WeChatOfficialSettingNames.EncodingAESKey, "",
L("DisplayName:WeChat.Official.EncodingAESKey"), L("DisplayName:WeChat.Official.EncodingAESKey"),
L("Description:WeChat.Official.EncodingAESKey"), L("Description:WeChat.Official.EncodingAESKey"),
isVisibleToClients: false, isVisibleToClients: false,
isEncrypted: true) isEncrypted: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
); );
} }

7
aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.SettingManagement/LINGYUN/Abp/WeChat/SettingManagement/IWeChatSettingAppService.cs

@ -1,13 +1,8 @@
using LINGYUN.Abp.SettingManagement; using LINGYUN.Abp.SettingManagement;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
namespace LINGYUN.Abp.WeChat.SettingManagement namespace LINGYUN.Abp.WeChat.SettingManagement
{ {
public interface IWeChatSettingAppService public interface IWeChatSettingAppService : IReadonlySettingAppService
{ {
Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync();
Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync();
} }
} }

45
aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.SettingManagement/LINGYUN/Abp/WeChat/SettingManagement/WeChatSettingAppService.cs

@ -3,9 +3,7 @@ using LINGYUN.Abp.WeChat.Localization;
using LINGYUN.Abp.WeChat.MiniProgram.Settings; using LINGYUN.Abp.WeChat.MiniProgram.Settings;
using LINGYUN.Abp.WeChat.Official.Settings; using LINGYUN.Abp.WeChat.Official.Settings;
using LINGYUN.Abp.WeChat.Settings; using LINGYUN.Abp.WeChat.Settings;
using System.Collections.Generic;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Authorization.Permissions; using Volo.Abp.Authorization.Permissions;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
@ -31,19 +29,19 @@ namespace LINGYUN.Abp.WeChat.SettingManagement
LocalizationResource = typeof(WeChatResource); LocalizationResource = typeof(WeChatResource);
} }
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString()); return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString());
} }
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null); return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null);
} }
protected virtual async Task<ListResultDto<SettingGroupDto>> GetAllForProviderAsync(string providerName, string providerKey) protected virtual async Task<SettingGroupResult> GetAllForProviderAsync(string providerName, string providerKey)
{ {
var settingGroups = new List<SettingGroupDto>(); var settingGroups = new SettingGroupResult();
var wechatSettingGroup = new SettingGroupDto(L["DisplayName:WeChat"], L["Description:WeChat"]); var wechatSettingGroup = new SettingGroupDto(L["DisplayName:WeChat"], L["Description:WeChat"]);
var loginSetting = wechatSettingGroup.AddSetting(L["UserLogin"], L["UserLogin"]); var loginSetting = wechatSettingGroup.AddSetting(L["UserLogin"], L["UserLogin"]);
@ -51,7 +49,8 @@ namespace LINGYUN.Abp.WeChat.SettingManagement
SettingDefinitionManager.Get(WeChatSettingNames.EnabledQuickLogin), SettingDefinitionManager.Get(WeChatSettingNames.EnabledQuickLogin),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatSettingNames.EnabledQuickLogin, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatSettingNames.EnabledQuickLogin, providerName, providerKey),
ValueType.Boolean); ValueType.Boolean,
providerName);
// 无权限返回空结果,直接报错的话,网关聚合会抛出异常 // 无权限返回空结果,直接报错的话,网关聚合会抛出异常
if (await PermissionChecker.IsGrantedAsync(WeChatSettingPermissionNames.Official)) if (await PermissionChecker.IsGrantedAsync(WeChatSettingPermissionNames.Official))
@ -63,27 +62,32 @@ namespace LINGYUN.Abp.WeChat.SettingManagement
SettingDefinitionManager.Get(WeChatOfficialSettingNames.AppId), SettingDefinitionManager.Get(WeChatOfficialSettingNames.AppId),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.AppId, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.AppId, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
officialSetting.AddDetail( officialSetting.AddDetail(
SettingDefinitionManager.Get(WeChatOfficialSettingNames.AppSecret), SettingDefinitionManager.Get(WeChatOfficialSettingNames.AppSecret),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.AppSecret, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.AppSecret, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
officialSetting.AddDetail( officialSetting.AddDetail(
SettingDefinitionManager.Get(WeChatOfficialSettingNames.Url), SettingDefinitionManager.Get(WeChatOfficialSettingNames.Url),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.Url, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.Url, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
officialSetting.AddDetail( officialSetting.AddDetail(
SettingDefinitionManager.Get(WeChatOfficialSettingNames.Token), SettingDefinitionManager.Get(WeChatOfficialSettingNames.Token),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.Token, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.Token, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
officialSetting.AddDetail( officialSetting.AddDetail(
SettingDefinitionManager.Get(WeChatOfficialSettingNames.EncodingAESKey), SettingDefinitionManager.Get(WeChatOfficialSettingNames.EncodingAESKey),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.EncodingAESKey, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatOfficialSettingNames.EncodingAESKey, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
#endregion #endregion
} }
@ -97,28 +101,33 @@ namespace LINGYUN.Abp.WeChat.SettingManagement
SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.AppId), SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.AppId),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.AppId, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.AppId, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
miniProgramSetting.AddDetail( miniProgramSetting.AddDetail(
SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.AppSecret), SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.AppSecret),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.AppSecret, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.AppSecret, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
miniProgramSetting.AddDetail( miniProgramSetting.AddDetail(
SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.Token), SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.Token),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.Token, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.Token, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
miniProgramSetting.AddDetail( miniProgramSetting.AddDetail(
SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.EncodingAESKey), SettingDefinitionManager.Get(WeChatMiniProgramSettingNames.EncodingAESKey),
StringLocalizerFactory, StringLocalizerFactory,
await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.EncodingAESKey, providerName, providerKey), await SettingManager.GetOrNullAsync(WeChatMiniProgramSettingNames.EncodingAESKey, providerName, providerKey),
ValueType.String); ValueType.String,
providerName);
#endregion #endregion
} }
settingGroups.Add(wechatSettingGroup); settingGroups.AddGroup(wechatSettingGroup);
return new ListResultDto<SettingGroupDto>(settingGroups);
return settingGroups;
} }
} }
} }

5
aspnet-core/modules/wechat/LINGYUN.Abp.WeChat.SettingManagement/LINGYUN/Abp/WeChat/SettingManagement/WeChatSettingController.cs

@ -2,7 +2,6 @@
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
namespace LINGYUN.Abp.WeChat.SettingManagement namespace LINGYUN.Abp.WeChat.SettingManagement
@ -22,14 +21,14 @@ namespace LINGYUN.Abp.WeChat.SettingManagement
[HttpGet] [HttpGet]
[Route("by-current-tenant")] [Route("by-current-tenant")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() public virtual async Task<SettingGroupResult> GetAllForCurrentTenantAsync()
{ {
return await WeChatSettingAppService.GetAllForCurrentTenantAsync(); return await WeChatSettingAppService.GetAllForCurrentTenantAsync();
} }
[HttpGet] [HttpGet]
[Route("by-global")] [Route("by-global")]
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() public virtual async Task<SettingGroupResult> GetAllForGlobalAsync()
{ {
return await WeChatSettingAppService.GetAllForGlobalAsync(); return await WeChatSettingAppService.GetAllForGlobalAsync();
} }

4
aspnet-core/modules/wechat/LINGYUN.Abp.WeChat/LINGYUN/Abp/WeChat/Settings/WeChatSettingDefinitionProvider.cs

@ -17,6 +17,10 @@ namespace LINGYUN.Abp.WeChat.Settings
L("Description:WeChat.EnabledQuickLogin"), L("Description:WeChat.EnabledQuickLogin"),
isVisibleToClients: true, isVisibleToClients: true,
isEncrypted: false) isEncrypted: false)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
); );
} }

14
aspnet-core/services/LY.MicroService.BackendAdmin.HttpApi.Host/Settings/AccountSettingDefinitionProvider.cs

@ -15,7 +15,12 @@ public class AccountSettingDefinitionProvider : SettingDefinitionProvider
AccountSettingNames.IsSelfRegistrationEnabled, AccountSettingNames.IsSelfRegistrationEnabled,
"true", "true",
L("DisplayName:Abp.Account.IsSelfRegistrationEnabled"), L("DisplayName:Abp.Account.IsSelfRegistrationEnabled"),
L("Description:Abp.Account.IsSelfRegistrationEnabled"), isVisibleToClients: true) L("Description:Abp.Account.IsSelfRegistrationEnabled"),
isVisibleToClients: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
); );
context.Add( context.Add(
@ -23,7 +28,12 @@ public class AccountSettingDefinitionProvider : SettingDefinitionProvider
AccountSettingNames.EnableLocalLogin, AccountSettingNames.EnableLocalLogin,
"true", "true",
L("DisplayName:Abp.Account.EnableLocalLogin"), L("DisplayName:Abp.Account.EnableLocalLogin"),
L("Description:Abp.Account.EnableLocalLogin"), isVisibleToClients: true) L("Description:Abp.Account.EnableLocalLogin"),
isVisibleToClients: true)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName)
); );
} }

Loading…
Cancel
Save