committed by
GitHub
42 changed files with 529 additions and 192 deletions
@ -0,0 +1,28 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>net5.0</TargetFramework> |
||||
|
<RootNamespace /> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<None Remove="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\en.json" /> |
||||
|
<None Remove="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\zh-Hans.json" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<EmbeddedResource Include="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\en.json" /> |
||||
|
<EmbeddedResource Include="LINGYUN\Abp\Aliyun\SettingManagement\Localization\Resources\zh-Hans.json" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.2.1" /> |
||||
|
<PackageReference Include="Volo.Abp.SettingManagement.Domain" Version="4.2.1" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<ProjectReference Include="..\..\common\LINGYUN.Abp.Sms.Aliyun\LINGYUN.Abp.Sms.Aliyun.csproj" /> |
||||
|
<ProjectReference Include="..\..\settings\LINGYUN.Abp.SettingManagement.Application.Contracts\LINGYUN.Abp.SettingManagement.Application.Contracts.csproj" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,42 @@ |
|||||
|
using LINGYUN.Abp.Aliyun.Localization; |
||||
|
using LINGYUN.Abp.Sms.Aliyun; |
||||
|
using Localization.Resources.AbpUi; |
||||
|
using Microsoft.Extensions.DependencyInjection; |
||||
|
using Volo.Abp.AspNetCore.Mvc; |
||||
|
using Volo.Abp.Localization; |
||||
|
using Volo.Abp.Modularity; |
||||
|
using Volo.Abp.VirtualFileSystem; |
||||
|
|
||||
|
namespace LINGYUN.Abp.Aliyun.SettingManagement |
||||
|
{ |
||||
|
[DependsOn( |
||||
|
typeof(AbpAliyunModule), |
||||
|
typeof(AbpAliyunSmsModule), |
||||
|
typeof(AbpAspNetCoreMvcModule))] |
||||
|
public class AbpAliyunSettingManagementModule : AbpModule |
||||
|
{ |
||||
|
public override void PreConfigureServices(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
PreConfigure<IMvcBuilder>(mvcBuilder => |
||||
|
{ |
||||
|
mvcBuilder.AddApplicationPartIfNotExists(typeof(AbpAliyunSettingManagementModule).Assembly); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
public override void ConfigureServices(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
Configure<AbpVirtualFileSystemOptions>(options => |
||||
|
{ |
||||
|
options.FileSets.AddEmbedded<AbpAliyunSettingManagementModule>(); |
||||
|
}); |
||||
|
|
||||
|
Configure<AbpLocalizationOptions>(options => |
||||
|
{ |
||||
|
options.Resources |
||||
|
.Get<AliyunResource>() |
||||
|
.AddBaseTypes(typeof(AbpUiResource)) |
||||
|
.AddVirtualJson("/LINGYUN/Abp/Aliyun/SettingManagement/Localization/Resources"); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,146 @@ |
|||||
|
using LINGYUN.Abp.Aliyun.Localization; |
||||
|
using LINGYUN.Abp.Aliyun.Settings; |
||||
|
using LINGYUN.Abp.SettingManagement; |
||||
|
using LINGYUN.Abp.Sms.Aliyun.Settings; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
using Volo.Abp.Application.Services; |
||||
|
using Volo.Abp.Authorization.Permissions; |
||||
|
using Volo.Abp.MultiTenancy; |
||||
|
using Volo.Abp.SettingManagement; |
||||
|
using Volo.Abp.Settings; |
||||
|
using ValueType = LINGYUN.Abp.SettingManagement.ValueType; |
||||
|
|
||||
|
namespace LINGYUN.Abp.Aliyun.SettingManagement |
||||
|
{ |
||||
|
public class AliyunSettingAppService : ApplicationService, IAliyunSettingAppService |
||||
|
{ |
||||
|
protected ISettingManager SettingManager { get; } |
||||
|
protected IPermissionChecker PermissionChecker { get; } |
||||
|
protected ISettingDefinitionManager SettingDefinitionManager { get; } |
||||
|
|
||||
|
public AliyunSettingAppService( |
||||
|
ISettingManager settingManager, |
||||
|
IPermissionChecker permissionChecker, |
||||
|
ISettingDefinitionManager settingDefinitionManager) |
||||
|
{ |
||||
|
SettingManager = settingManager; |
||||
|
PermissionChecker = permissionChecker; |
||||
|
SettingDefinitionManager = settingDefinitionManager; |
||||
|
LocalizationResource = typeof(AliyunResource); |
||||
|
} |
||||
|
|
||||
|
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() |
||||
|
{ |
||||
|
return await GetAllForProviderAsync(TenantSettingValueProvider.ProviderName, CurrentTenant.GetId().ToString()); |
||||
|
} |
||||
|
|
||||
|
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() |
||||
|
{ |
||||
|
return await GetAllForProviderAsync(GlobalSettingValueProvider.ProviderName, null); |
||||
|
} |
||||
|
|
||||
|
protected virtual async Task<ListResultDto<SettingGroupDto>> GetAllForProviderAsync(string providerName, string providerKey) |
||||
|
{ |
||||
|
var settingGroups = new List<SettingGroupDto>(); |
||||
|
|
||||
|
// 无权限返回空结果,直接报错的话,网关聚合会抛出异常
|
||||
|
if (await PermissionChecker.IsGrantedAsync(AliyunSettingPermissionNames.Settings)) |
||||
|
{ |
||||
|
var aliyunSettingGroup = new SettingGroupDto(L["DisplayName:Aliyun"], L["Description:Aliyun"]); |
||||
|
#region 访问控制
|
||||
|
|
||||
|
var ramSetting = aliyunSettingGroup.AddSetting(L["DisplayName:Aliyun.RAM"], L["Description:Aliyun.RAM"]); |
||||
|
|
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RegionId), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RegionId, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.AccessKeyId), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.AccessKeyId, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.AccessKeySecret), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.AccessKeySecret, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RamRoleArn), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RamRoleArn, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.RoleSessionName), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.RoleSessionName, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.Policy), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.Policy, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.UseSecurityTokenService), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.UseSecurityTokenService, providerName, providerKey), |
||||
|
ValueType.Boolean); |
||||
|
ramSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSettingNames.Authorization.DurationSeconds), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSettingNames.Authorization.DurationSeconds, providerName, providerKey), |
||||
|
ValueType.Number); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
#region 短信
|
||||
|
|
||||
|
var smsSetting = aliyunSettingGroup.AddSetting(L["DisplayName:Aliyun.Sms"], L["Description:Aliyun.Sms"]); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.Domain), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.Domain, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.Version), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.Version, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.ActionName), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.ActionName, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultPhoneNumber), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultPhoneNumber, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultSignName), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultSignName, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.DefaultTemplateCode), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.DefaultTemplateCode, providerName, providerKey), |
||||
|
ValueType.String); |
||||
|
smsSetting.AddDetail( |
||||
|
SettingDefinitionManager.Get(AliyunSmsSettingNames.Sms.VisableErrorToClient), |
||||
|
StringLocalizerFactory, |
||||
|
await SettingManager.GetOrNullAsync(AliyunSmsSettingNames.Sms.VisableErrorToClient, providerName, providerKey), |
||||
|
ValueType.Boolean); |
||||
|
|
||||
|
#endregion
|
||||
|
|
||||
|
settingGroups.Add(aliyunSettingGroup); |
||||
|
} |
||||
|
|
||||
|
return new ListResultDto<SettingGroupDto>(settingGroups); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,37 @@ |
|||||
|
using LINGYUN.Abp.SettingManagement; |
||||
|
using Microsoft.AspNetCore.Mvc; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
using Volo.Abp.AspNetCore.Mvc; |
||||
|
|
||||
|
namespace LINGYUN.Abp.Aliyun.SettingManagement |
||||
|
{ |
||||
|
[RemoteService(Name = AbpSettingManagementRemoteServiceConsts.RemoteServiceName)] |
||||
|
[Area("settingManagement")] |
||||
|
[Route("api/setting-management/aliyun")] |
||||
|
public class AliyunSettingController : AbpController, IAliyunSettingAppService |
||||
|
{ |
||||
|
protected IAliyunSettingAppService AppService { get; } |
||||
|
|
||||
|
public AliyunSettingController( |
||||
|
IAliyunSettingAppService appService) |
||||
|
{ |
||||
|
AppService = appService; |
||||
|
} |
||||
|
|
||||
|
[HttpGet] |
||||
|
[Route("by-current-tenant")] |
||||
|
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync() |
||||
|
{ |
||||
|
return await AppService.GetAllForCurrentTenantAsync(); |
||||
|
} |
||||
|
|
||||
|
[HttpGet] |
||||
|
[Route("by-global")] |
||||
|
public virtual async Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync() |
||||
|
{ |
||||
|
return await AppService.GetAllForGlobalAsync(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,24 @@ |
|||||
|
using LINGYUN.Abp.Aliyun.Localization; |
||||
|
using Volo.Abp.Authorization.Permissions; |
||||
|
using Volo.Abp.Localization; |
||||
|
|
||||
|
namespace LINGYUN.Abp.Aliyun.SettingManagement |
||||
|
{ |
||||
|
public class AliyunSettingPermissionDefinitionProvider : PermissionDefinitionProvider |
||||
|
{ |
||||
|
public override void Define(IPermissionDefinitionContext context) |
||||
|
{ |
||||
|
var wechatGroup = context.AddGroup( |
||||
|
AliyunSettingPermissionNames.GroupName, |
||||
|
L("Permission:Aliyun")); |
||||
|
|
||||
|
wechatGroup.AddPermission( |
||||
|
AliyunSettingPermissionNames.Settings, L("Permission:Aliyun.Settings")); |
||||
|
} |
||||
|
|
||||
|
protected LocalizableString L(string name) |
||||
|
{ |
||||
|
return LocalizableString.Create<AliyunResource>(name); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,9 @@ |
|||||
|
namespace LINGYUN.Abp.Aliyun.SettingManagement |
||||
|
{ |
||||
|
public class AliyunSettingPermissionNames |
||||
|
{ |
||||
|
public const string GroupName = "Abp.Aliyun"; |
||||
|
|
||||
|
public const string Settings = GroupName + ".Settings"; |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
using LINGYUN.Abp.SettingManagement; |
||||
|
using System.Threading.Tasks; |
||||
|
using Volo.Abp.Application.Dtos; |
||||
|
|
||||
|
namespace LINGYUN.Abp.Aliyun.SettingManagement |
||||
|
{ |
||||
|
public interface IAliyunSettingAppService |
||||
|
{ |
||||
|
Task<ListResultDto<SettingGroupDto>> GetAllForGlobalAsync(); |
||||
|
|
||||
|
Task<ListResultDto<SettingGroupDto>> GetAllForCurrentTenantAsync(); |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"culture": "en", |
||||
|
"texts": { |
||||
|
"Permission:Aliyun": "Aliyun", |
||||
|
"Permission:Aliyun.Settings": "Settings", |
||||
|
"DisplayName:Aliyun": "Aliyun", |
||||
|
"Description:Aliyun": "Aliyun" |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,9 @@ |
|||||
|
{ |
||||
|
"culture": "zh-Hans", |
||||
|
"texts": { |
||||
|
"Permission:Aliyun": "阿里云服务", |
||||
|
"Permission:Aliyun.Settings": "配置阿里云", |
||||
|
"DisplayName:Aliyun": "阿里云服务", |
||||
|
"Description:Aliyun": "阿里云服务" |
||||
|
} |
||||
|
} |
||||
@ -1,6 +1,6 @@ |
|||||
using System; |
using System; |
||||
|
|
||||
namespace LINYUN.Abp.Aliyun |
namespace LINGYUN.Abp.Aliyun |
||||
{ |
{ |
||||
[Serializable] |
[Serializable] |
||||
public class AliyunBasicSessionCredentialsCacheItem |
public class AliyunBasicSessionCredentialsCacheItem |
||||
@ -1,7 +1,7 @@ |
|||||
using Aliyun.Acs.Core; |
using Aliyun.Acs.Core; |
||||
using System.Threading.Tasks; |
using System.Threading.Tasks; |
||||
|
|
||||
namespace LINYUN.Abp.Aliyun |
namespace LINGYUN.Abp.Aliyun |
||||
{ |
{ |
||||
public interface IAcsClientFactory |
public interface IAcsClientFactory |
||||
{ |
{ |
||||
@ -1,6 +1,6 @@ |
|||||
using Volo.Abp.Localization; |
using Volo.Abp.Localization; |
||||
|
|
||||
namespace LINYUN.Abp.Aliyun.Localization |
namespace LINGYUN.Abp.Aliyun.Localization |
||||
{ |
{ |
||||
[LocalizationResourceName("Aliyun")] |
[LocalizationResourceName("Aliyun")] |
||||
public class AliyunResource |
public class AliyunResource |
||||
@ -1,6 +1,8 @@ |
|||||
{ |
{ |
||||
"culture": "en", |
"culture": "en", |
||||
"texts": { |
"texts": { |
||||
|
"DisplayName:Aliyun.RAM": "RAM", |
||||
|
"Description:Aliyun.RAM": "RAM", |
||||
"DisplayName:Authorization": "Authorization", |
"DisplayName:Authorization": "Authorization", |
||||
"Description:Authorization": "Authorization", |
"Description:Authorization": "Authorization", |
||||
"DisplayName:RegionId": "Region Id", |
"DisplayName:RegionId": "Region Id", |
||||
@ -1,6 +1,8 @@ |
|||||
{ |
{ |
||||
"culture": "zh-Hans", |
"culture": "zh-Hans", |
||||
"texts": { |
"texts": { |
||||
|
"DisplayName:Aliyun.RAM": "访问控制", |
||||
|
"Description:Aliyun.RAM": "阿里云服务访问控制", |
||||
"DisplayName:Authorization": "阿里云身份认证凭据", |
"DisplayName:Authorization": "阿里云身份认证凭据", |
||||
"Description:Authorization": "阿里云身份认证凭据", |
"Description:Authorization": "阿里云身份认证凭据", |
||||
"DisplayName:RegionId": "地域ID", |
"DisplayName:RegionId": "地域ID", |
||||
@ -1,4 +1,4 @@ |
|||||
namespace LINYUN.Abp.Aliyun.Settings |
namespace LINGYUN.Abp.Aliyun.Settings |
||||
{ |
{ |
||||
public static class AliyunSettingNames |
public static class AliyunSettingNames |
||||
{ |
{ |
||||
@ -1,6 +1,6 @@ |
|||||
using LINYUN.Abp.Aliyun; |
using LINGYUN.Abp.Aliyun; |
||||
|
|
||||
namespace LINYUN.Abp.Sms.Aliyun |
namespace LINGYUN.Abp.Sms.Aliyun |
||||
{ |
{ |
||||
public class AliyunSmsException : AbpAliyunException |
public class AliyunSmsException : AbpAliyunException |
||||
{ |
{ |
||||
@ -0,0 +1,125 @@ |
|||||
|
using LINGYUN.Abp.Aliyun.Localization; |
||||
|
using System; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Localization; |
||||
|
|
||||
|
namespace LINGYUN.Abp.Sms.Aliyun |
||||
|
{ |
||||
|
public class AliyunSmsResponse |
||||
|
{ |
||||
|
public string Code { get; set; } |
||||
|
public string Message { get; set; } |
||||
|
public string RequestId { get; set; } |
||||
|
|
||||
|
public bool IsSuccess() |
||||
|
{ |
||||
|
return "ok".Equals(Code, StringComparison.CurrentCultureIgnoreCase); |
||||
|
} |
||||
|
|
||||
|
public static ILocalizableString GetErrorMessage(string code, string message) |
||||
|
{ |
||||
|
// TODO: 把前缀写入本地化文档里面?
|
||||
|
Check.NotNullOrWhiteSpace(code, nameof(code)); |
||||
|
switch (code) |
||||
|
{ |
||||
|
case "isv.SMS_SIGNATURE_SCENE_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SMS_SIGNATURE_SCENE_ILLEGAL"); |
||||
|
case "isv.DENY_IP_RANGE": |
||||
|
return LocalizableString.Create<AliyunResource>("DENY_IP_RANGE"); |
||||
|
case "isv.MOBILE_COUNT_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("MOBILE_COUNT_OVER_LIMIT"); |
||||
|
case "isv.BUSINESS_LIMIT_CONTROL": |
||||
|
return LocalizableString.Create<AliyunResource>("BUSINESS_LIMIT_CONTROL"); |
||||
|
case "SignatureDoesNotMatch": |
||||
|
return LocalizableString.Create<AliyunResource>("SignatureDoesNotMatch"); |
||||
|
case "InvalidTimeStamp.Expired": |
||||
|
return LocalizableString.Create<AliyunResource>("InvalidTimeStampExpired"); |
||||
|
case "SignatureNonceUsed": |
||||
|
return LocalizableString.Create<AliyunResource>("SignatureNonceUsed"); |
||||
|
case "InvalidVersion": |
||||
|
return LocalizableString.Create<AliyunResource>("InvalidVersion"); |
||||
|
case "InvalidAction.NotFound": |
||||
|
return LocalizableString.Create<AliyunResource>("InvalidActionNotFound"); |
||||
|
case "isv.SIGN_COUNT_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("SIGN_COUNT_OVER_LIMIT"); |
||||
|
case "isv.TEMPLATE_COUNT_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("TEMPLATE_COUNT_OVER_LIMIT"); |
||||
|
case "isv.SIGN_NAME_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SIGN_NAME_ILLEGAL"); |
||||
|
case "isv.SIGN_FILE_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("SIGN_FILE_LIMIT"); |
||||
|
case "isv.SIGN_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("SIGN_OVER_LIMIT"); |
||||
|
case "isv.TEMPLATE_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("TEMPLATE_OVER_LIMIT"); |
||||
|
case "SIGNATURE_BLACKLIST": |
||||
|
return LocalizableString.Create<AliyunResource>("SIGNATURE_BLACKLIST"); |
||||
|
case "isv.SHORTURL_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("SHORTURL_OVER_LIMIT"); |
||||
|
case "isv.NO_AVAILABLE_SHORT_URL": |
||||
|
return LocalizableString.Create<AliyunResource>("NO_AVAILABLE_SHORT_URL"); |
||||
|
case "isv.SHORTURL_NAME_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SHORTURL_NAME_ILLEGAL"); |
||||
|
case "isv.SOURCEURL_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("SOURCEURL_OVER_LIMIT"); |
||||
|
case "isv.SHORTURL_TIME_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SHORTURL_TIME_ILLEGAL"); |
||||
|
case "isv.PHONENUMBERS_OVER_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("PHONENUMBERS_OVER_LIMIT"); |
||||
|
case "isv.SHORTURL_STILL_AVAILABLE": |
||||
|
return LocalizableString.Create<AliyunResource>("SHORTURL_STILL_AVAILABLE"); |
||||
|
case "isv.SHORTURL_NOT_FOUND": |
||||
|
return LocalizableString.Create<AliyunResource>("SHORTURL_NOT_FOUND"); |
||||
|
case "isv.SMS_TEMPLATE_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SMS_TEMPLATE_ILLEGAL"); |
||||
|
case "isv.SMS_SIGNATURE_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SMS_SIGNATURE_ILLEGAL"); |
||||
|
case "isv.MOBILE_NUMBER_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("MOBILE_NUMBER_ILLEGAL"); |
||||
|
case "isv.TEMPLATE_MISSING_PARAMETERS": |
||||
|
return LocalizableString.Create<AliyunResource>("TEMPLATE_MISSING_PARAMETERS"); |
||||
|
case "isv.EXTEND_CODE_ERROR": |
||||
|
return LocalizableString.Create<AliyunResource>("EXTEND_CODE_ERROR"); |
||||
|
case "isv.DOMESTIC_NUMBER_NOT_SUPPORTED": |
||||
|
return LocalizableString.Create<AliyunResource>("DOMESTIC_NUMBER_NOT_SUPPORTED"); |
||||
|
case "isv.DAY_LIMIT_CONTROL": |
||||
|
return LocalizableString.Create<AliyunResource>("DAY_LIMIT_CONTROL"); |
||||
|
case "isv.SMS_CONTENT_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SMS_CONTENT_ILLEGAL"); |
||||
|
case "isv.SMS_SIGN_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("SMS_SIGN_ILLEGAL"); |
||||
|
case "isp.RAM_PERMISSION_DENY": |
||||
|
return LocalizableString.Create<AliyunResource>("RAM_PERMISSION_DENY"); |
||||
|
case "isp.OUT_OF_SERVICE": |
||||
|
return LocalizableString.Create<AliyunResource>("OUT_OF_SERVICE"); |
||||
|
case "isv.PRODUCT_UN_SUBSCRIPT": |
||||
|
return LocalizableString.Create<AliyunResource>("PRODUCT_UN_SUBSCRIPT"); |
||||
|
case "isv.PRODUCT_UNSUBSCRIBE": |
||||
|
return LocalizableString.Create<AliyunResource>("PRODUCT_UNSUBSCRIBE"); |
||||
|
case "isv.ACCOUNT_NOT_EXISTS": |
||||
|
return LocalizableString.Create<AliyunResource>("ACCOUNT_NOT_EXISTS"); |
||||
|
case "isv.ACCOUNT_ABNORMAL": |
||||
|
return LocalizableString.Create<AliyunResource>("ACCOUNT_ABNORMAL"); |
||||
|
case "isv.INVALID_PARAMETERS": |
||||
|
return LocalizableString.Create<AliyunResource>("INVALID_PARAMETERS"); |
||||
|
case "isv.SYSTEM_ERROR": |
||||
|
return LocalizableString.Create<AliyunResource>("SYSTEM_ERROR"); |
||||
|
case "isv.INVALID_JSON_PARAM": |
||||
|
return LocalizableString.Create<AliyunResource>("INVALID_JSON_PARAM"); |
||||
|
case "isv.BLACK_KEY_CONTROL_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("BLACK_KEY_CONTROL_LIMIT"); |
||||
|
case "isv.PARAM_LENGTH_LIMIT": |
||||
|
return LocalizableString.Create<AliyunResource>("PARAM_LENGTH_LIMIT"); |
||||
|
case "isv.PARAM_NOT_SUPPORT_URL": |
||||
|
return LocalizableString.Create<AliyunResource>("PARAM_NOT_SUPPORT_URL"); |
||||
|
case "isv.AMOUNT_NOT_ENOUGH": |
||||
|
return LocalizableString.Create<AliyunResource>("AMOUNT_NOT_ENOUGH"); |
||||
|
case "isv.TEMPLATE_PARAMS_ILLEGAL": |
||||
|
return LocalizableString.Create<AliyunResource>("TEMPLATE_PARAMS_ILLEGAL"); |
||||
|
default: |
||||
|
throw new AbpException($"no error code: {code} define, message: {message}"); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -1,4 +1,4 @@ |
|||||
namespace LINYUN.Abp.Sms.Aliyun |
namespace LINGYUN.Abp.Sms.Aliyun |
||||
{ |
{ |
||||
public class AliyunSmsSuccessResponse : AliyunSmsResponse |
public class AliyunSmsSuccessResponse : AliyunSmsResponse |
||||
{ |
{ |
||||
@ -1,6 +1,22 @@ |
|||||
{ |
{ |
||||
"culture": "en", |
"culture": "en", |
||||
"texts": { |
"texts": { |
||||
|
"DisplayName:Aliyun.Sms": "Sms", |
||||
|
"Description:Aliyun.Sms": "Sms", |
||||
|
"DisplayName:ActionName": "Action Name", |
||||
|
"Description:ActionName": "Action Name", |
||||
|
"DisplayName:DefaultSignName": "Default Sign Name", |
||||
|
"Description:DefaultSignName": "Default Sign Name", |
||||
|
"DisplayName:DefaultTemplateCode": "Default Template Code", |
||||
|
"Description:DefaultTemplateCode": "Default Template Code", |
||||
|
"DisplayName:DefaultPhoneNumber": "Default Phone Number", |
||||
|
"Description:DefaultPhoneNumber": "Default Phone Number", |
||||
|
"DisplayName:Domain": "Domain", |
||||
|
"Description:Domain": "Domain", |
||||
|
"DisplayName:Version": "Version", |
||||
|
"Description:Version": "Version", |
||||
|
"DisplayName:VisableErrorToClient": "Visable Error To Client", |
||||
|
"Description:VisableErrorToClient": "Visable Error To Client", |
||||
"SendMessageFailed": "Text message sending failed:{0}", |
"SendMessageFailed": "Text message sending failed:{0}", |
||||
"SMS_SIGNATURE_SCENE_ILLEGAL": "Signature scene used by SMS is illegal", |
"SMS_SIGNATURE_SCENE_ILLEGAL": "Signature scene used by SMS is illegal", |
||||
"DENY_IP_RANGE": "Region where source IP address is disabled", |
"DENY_IP_RANGE": "Region where source IP address is disabled", |
||||
@ -1,20 +1,22 @@ |
|||||
{ |
{ |
||||
"culture": "zh-Hans", |
"culture": "zh-Hans", |
||||
"texts": { |
"texts": { |
||||
"DisplayName:ActionName": "阿里云身份认证凭据", |
"DisplayName:Aliyun.Sms": "短信服务", |
||||
"Description:ActionName": "阿里云身份认证凭据", |
"Description:Aliyun.Sms": "阿里云短信服务", |
||||
"DisplayName:DefaultSignName": "地域ID", |
"DisplayName:ActionName": "发送短信方法", |
||||
"Description:DefaultSignName": "正在使用的地域ID", |
"Description:ActionName": "发送短信方法名称,详情见阿里云Sms服务", |
||||
"DisplayName:DefaultTemplateCode": "AccessKey Id", |
"DisplayName:DefaultSignName": "默认短信签名", |
||||
"Description:DefaultTemplateCode": "访问密钥标识", |
"Description:DefaultSignName": "当用户未指定短信签名时的默认签名名称", |
||||
"DisplayName:DeveloperPhoneNumber": "AccessKey Secret", |
"DisplayName:DefaultTemplateCode": "默认短信模板号", |
||||
"Description:DeveloperPhoneNumber": "访问密钥", |
"Description:DefaultTemplateCode": "当用户未指定短信签名时的默认短信模板号", |
||||
|
"DisplayName:DefaultPhoneNumber": "默认接收短信手机号", |
||||
|
"Description:DefaultPhoneNumber": "当用户未指定短信接收方时的默认接收手机号码", |
||||
"DisplayName:Domain": "阿里云sms服务域名", |
"DisplayName:Domain": "阿里云sms服务域名", |
||||
"Description:Domain": "使用STS Token访问", |
"Description:Domain": "阿里云sms服务域名", |
||||
"DisplayName:Version": "角色全局资源描述符", |
"DisplayName:Version": "阿里云sms服务版本号", |
||||
"Description:Version": "格式:acs:ram::$accountID:role/$roleName/$RoleSessionName,详情见阿里云访问控制API", |
"Description:Version": "阿里云sms服务版本号", |
||||
"DisplayName:RoleSessionName": "角色全局资源描述符", |
"DisplayName:VisableErrorToClient": "发送错误到客户端", |
||||
"Description:RoleSessionName": "格式:acs:ram::$accountID:role/$roleName/$RoleSessionName,详情见阿里云访问控制API", |
"Description:VisableErrorToClient": "当短信服务发送出现错误时是否发送错误详情到客户端", |
||||
"SendMessageFailed": "发送短信错误:{0}", |
"SendMessageFailed": "发送短信错误:{0}", |
||||
"SMS_SIGNATURE_SCENE_ILLEGAL": "短信所使用签名场景非法", |
"SMS_SIGNATURE_SCENE_ILLEGAL": "短信所使用签名场景非法", |
||||
"DENY_IP_RANGE": "源IP地址所在的地区被禁用", |
"DENY_IP_RANGE": "源IP地址所在的地区被禁用", |
||||
@ -1,6 +1,6 @@ |
|||||
using LINYUN.Abp.Aliyun.Settings; |
using LINGYUN.Abp.Aliyun.Settings; |
||||
|
|
||||
namespace LINYUN.Abp.Sms.Aliyun.Settings |
namespace LINGYUN.Abp.Sms.Aliyun.Settings |
||||
{ |
{ |
||||
public static class AliyunSmsSettingNames |
public static class AliyunSmsSettingNames |
||||
{ |
{ |
||||
@ -1,8 +1,8 @@ |
|||||
using LINYUN.Abp.Aliyun.Localization; |
using LINGYUN.Abp.Aliyun.Localization; |
||||
using Volo.Abp.Localization; |
using Volo.Abp.Localization; |
||||
using Volo.Abp.Settings; |
using Volo.Abp.Settings; |
||||
|
|
||||
namespace LINYUN.Abp.Sms.Aliyun.Settings |
namespace LINGYUN.Abp.Sms.Aliyun.Settings |
||||
{ |
{ |
||||
public class AliyunSmsSettingProvider : SettingDefinitionProvider |
public class AliyunSmsSettingProvider : SettingDefinitionProvider |
||||
{ |
{ |
||||
@ -1,125 +0,0 @@ |
|||||
using LINYUN.Abp.Sms.Aliyun.Localization; |
|
||||
using System; |
|
||||
using Volo.Abp; |
|
||||
using Volo.Abp.Localization; |
|
||||
|
|
||||
namespace LINYUN.Abp.Sms.Aliyun |
|
||||
{ |
|
||||
public class AliyunSmsResponse |
|
||||
{ |
|
||||
public string Code { get; set; } |
|
||||
public string Message { get; set; } |
|
||||
public string RequestId { get; set; } |
|
||||
|
|
||||
public bool IsSuccess() |
|
||||
{ |
|
||||
return "ok".Equals(Code, StringComparison.CurrentCultureIgnoreCase); |
|
||||
} |
|
||||
|
|
||||
public static ILocalizableString GetErrorMessage(string code, string message) |
|
||||
{ |
|
||||
// TODO: 把前缀写入本地化文档里面?
|
|
||||
Check.NotNullOrWhiteSpace(code, nameof(code)); |
|
||||
switch (code) |
|
||||
{ |
|
||||
case "isv.SMS_SIGNATURE_SCENE_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SMS_SIGNATURE_SCENE_ILLEGAL"); |
|
||||
case "isv.DENY_IP_RANGE": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("DENY_IP_RANGE"); |
|
||||
case "isv.MOBILE_COUNT_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("MOBILE_COUNT_OVER_LIMIT"); |
|
||||
case "isv.BUSINESS_LIMIT_CONTROL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("BUSINESS_LIMIT_CONTROL"); |
|
||||
case "SignatureDoesNotMatch": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SignatureDoesNotMatch"); |
|
||||
case "InvalidTimeStamp.Expired": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("InvalidTimeStampExpired"); |
|
||||
case "SignatureNonceUsed": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SignatureNonceUsed"); |
|
||||
case "InvalidVersion": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("InvalidVersion"); |
|
||||
case "InvalidAction.NotFound": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("InvalidActionNotFound"); |
|
||||
case "isv.SIGN_COUNT_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SIGN_COUNT_OVER_LIMIT"); |
|
||||
case "isv.TEMPLATE_COUNT_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("TEMPLATE_COUNT_OVER_LIMIT"); |
|
||||
case "isv.SIGN_NAME_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SIGN_NAME_ILLEGAL"); |
|
||||
case "isv.SIGN_FILE_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SIGN_FILE_LIMIT"); |
|
||||
case "isv.SIGN_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SIGN_OVER_LIMIT"); |
|
||||
case "isv.TEMPLATE_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("TEMPLATE_OVER_LIMIT"); |
|
||||
case "SIGNATURE_BLACKLIST": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SIGNATURE_BLACKLIST"); |
|
||||
case "isv.SHORTURL_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SHORTURL_OVER_LIMIT"); |
|
||||
case "isv.NO_AVAILABLE_SHORT_URL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("NO_AVAILABLE_SHORT_URL"); |
|
||||
case "isv.SHORTURL_NAME_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SHORTURL_NAME_ILLEGAL"); |
|
||||
case "isv.SOURCEURL_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SOURCEURL_OVER_LIMIT"); |
|
||||
case "isv.SHORTURL_TIME_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SHORTURL_TIME_ILLEGAL"); |
|
||||
case "isv.PHONENUMBERS_OVER_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("PHONENUMBERS_OVER_LIMIT"); |
|
||||
case "isv.SHORTURL_STILL_AVAILABLE": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SHORTURL_STILL_AVAILABLE"); |
|
||||
case "isv.SHORTURL_NOT_FOUND": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SHORTURL_NOT_FOUND"); |
|
||||
case "isv.SMS_TEMPLATE_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SMS_TEMPLATE_ILLEGAL"); |
|
||||
case "isv.SMS_SIGNATURE_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SMS_SIGNATURE_ILLEGAL"); |
|
||||
case "isv.MOBILE_NUMBER_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("MOBILE_NUMBER_ILLEGAL"); |
|
||||
case "isv.TEMPLATE_MISSING_PARAMETERS": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("TEMPLATE_MISSING_PARAMETERS"); |
|
||||
case "isv.EXTEND_CODE_ERROR": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("EXTEND_CODE_ERROR"); |
|
||||
case "isv.DOMESTIC_NUMBER_NOT_SUPPORTED": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("DOMESTIC_NUMBER_NOT_SUPPORTED"); |
|
||||
case "isv.DAY_LIMIT_CONTROL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("DAY_LIMIT_CONTROL"); |
|
||||
case "isv.SMS_CONTENT_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SMS_CONTENT_ILLEGAL"); |
|
||||
case "isv.SMS_SIGN_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SMS_SIGN_ILLEGAL"); |
|
||||
case "isp.RAM_PERMISSION_DENY": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("RAM_PERMISSION_DENY"); |
|
||||
case "isp.OUT_OF_SERVICE": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("OUT_OF_SERVICE"); |
|
||||
case "isv.PRODUCT_UN_SUBSCRIPT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("PRODUCT_UN_SUBSCRIPT"); |
|
||||
case "isv.PRODUCT_UNSUBSCRIBE": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("PRODUCT_UNSUBSCRIBE"); |
|
||||
case "isv.ACCOUNT_NOT_EXISTS": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("ACCOUNT_NOT_EXISTS"); |
|
||||
case "isv.ACCOUNT_ABNORMAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("ACCOUNT_ABNORMAL"); |
|
||||
case "isv.INVALID_PARAMETERS": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("INVALID_PARAMETERS"); |
|
||||
case "isv.SYSTEM_ERROR": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("SYSTEM_ERROR"); |
|
||||
case "isv.INVALID_JSON_PARAM": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("INVALID_JSON_PARAM"); |
|
||||
case "isv.BLACK_KEY_CONTROL_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("BLACK_KEY_CONTROL_LIMIT"); |
|
||||
case "isv.PARAM_LENGTH_LIMIT": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("PARAM_LENGTH_LIMIT"); |
|
||||
case "isv.PARAM_NOT_SUPPORT_URL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("PARAM_NOT_SUPPORT_URL"); |
|
||||
case "isv.AMOUNT_NOT_ENOUGH": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("AMOUNT_NOT_ENOUGH"); |
|
||||
case "isv.TEMPLATE_PARAMS_ILLEGAL": |
|
||||
return LocalizableString.Create<AliyunSmsResource>("TEMPLATE_PARAMS_ILLEGAL"); |
|
||||
default: |
|
||||
throw new AbpException($"no error code: {code} define, message: {message}"); |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -1,9 +0,0 @@ |
|||||
using Volo.Abp.Localization; |
|
||||
|
|
||||
namespace LINYUN.Abp.Sms.Aliyun.Localization |
|
||||
{ |
|
||||
[LocalizationResourceName("AliyunSms")] |
|
||||
public class AliyunSmsResource |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
Binary file not shown.
Loading…
Reference in new issue