Browse Source

fix: add missing localized text

pull/307/head
cKey 4 years ago
parent
commit
e6db423bf4
  1. 1
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/en.json
  2. 1
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/zh-Hans.json
  3. 374
      aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application/LINGYUN/Abp/IdentityServer/ApiResources/ApiResourceAppService.cs

1
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/en.json

@ -55,6 +55,7 @@
"Name": "Name", "Name": "Name",
"DisplayName": "Display Name", "DisplayName": "Display Name",
"Description": "Description", "Description": "Description",
"Enabled": "Enabled",
"Required": "Required", "Required": "Required",
"Emphasize": "Emphasize", "Emphasize": "Emphasize",
"ShowInDiscoveryDocument": "Show In Discovery Document", "ShowInDiscoveryDocument": "Show In Discovery Document",

1
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application.Contracts/LINGYUN/Abp/IdentityServer/Localization/Resources/zh-Hans.json

@ -55,6 +55,7 @@
"Name": "名称", "Name": "名称",
"DisplayName": "显示名称", "DisplayName": "显示名称",
"Description": "描述", "Description": "描述",
"Enabled": "启用",
"Required": "必要", "Required": "必要",
"Emphasize": "强调", "Emphasize": "强调",
"ShowInDiscoveryDocument": "在发现文档中显示", "ShowInDiscoveryDocument": "在发现文档中显示",

374
aspnet-core/modules/identityServer/LINGYUN.Abp.IdentityServer.Application/LINGYUN/Abp/IdentityServer/ApiResources/ApiResourceAppService.cs

@ -1,187 +1,187 @@
using IdentityServer4; using IdentityServer4;
using IdentityServer4.Models; using IdentityServer4.Models;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource; using ApiResource = Volo.Abp.IdentityServer.ApiResources.ApiResource;
namespace LINGYUN.Abp.IdentityServer.ApiResources namespace LINGYUN.Abp.IdentityServer.ApiResources
{ {
[Authorize(AbpIdentityServerPermissions.ApiResources.Default)] [Authorize(AbpIdentityServerPermissions.ApiResources.Default)]
public class ApiResourceAppService : AbpIdentityServerAppServiceBase, IApiResourceAppService public class ApiResourceAppService : AbpIdentityServerAppServiceBase, IApiResourceAppService
{ {
protected IApiResourceRepository ApiResourceRepository { get; } protected IApiResourceRepository ApiResourceRepository { get; }
public ApiResourceAppService( public ApiResourceAppService(
IApiResourceRepository apiResourceRepository) IApiResourceRepository apiResourceRepository)
{ {
ApiResourceRepository = apiResourceRepository; ApiResourceRepository = apiResourceRepository;
} }
public virtual async Task<ApiResourceDto> GetAsync(Guid id) public virtual async Task<ApiResourceDto> GetAsync(Guid id)
{ {
var apiResource = await ApiResourceRepository.GetAsync(id); var apiResource = await ApiResourceRepository.GetAsync(id);
return ObjectMapper.Map<ApiResource, ApiResourceDto>(apiResource); return ObjectMapper.Map<ApiResource, ApiResourceDto>(apiResource);
} }
public virtual async Task<PagedResultDto<ApiResourceDto>> GetListAsync(ApiResourceGetByPagedInputDto input) public virtual async Task<PagedResultDto<ApiResourceDto>> GetListAsync(ApiResourceGetByPagedInputDto input)
{ {
var apiResources = await ApiResourceRepository.GetListAsync(input.Sorting, var apiResources = await ApiResourceRepository.GetListAsync(input.Sorting,
input.SkipCount, input.MaxResultCount, input.SkipCount, input.MaxResultCount,
input.Filter); input.Filter);
// 未加Filter过滤器? 结果数不准 // 未加Filter过滤器? 结果数不准
var apiResourceCount = await ApiResourceRepository.GetCountAsync(); var apiResourceCount = await ApiResourceRepository.GetCountAsync(input.Filter);
return new PagedResultDto<ApiResourceDto>(apiResourceCount, return new PagedResultDto<ApiResourceDto>(apiResourceCount,
ObjectMapper.Map<List<ApiResource>, List<ApiResourceDto>>(apiResources)); ObjectMapper.Map<List<ApiResource>, List<ApiResourceDto>>(apiResources));
} }
[Authorize(AbpIdentityServerPermissions.ApiResources.Create)] [Authorize(AbpIdentityServerPermissions.ApiResources.Create)]
public virtual async Task<ApiResourceDto> CreateAsync(ApiResourceCreateDto input) public virtual async Task<ApiResourceDto> CreateAsync(ApiResourceCreateDto input)
{ {
var apiResourceExists = await ApiResourceRepository.CheckNameExistAsync(input.Name); var apiResourceExists = await ApiResourceRepository.CheckNameExistAsync(input.Name);
if (apiResourceExists) if (apiResourceExists)
{ {
throw new UserFriendlyException(L[AbpIdentityServerErrorConsts.ApiResourceNameExisted, input.Name]); throw new UserFriendlyException(L[AbpIdentityServerErrorConsts.ApiResourceNameExisted, input.Name]);
} }
var apiResource = new ApiResource( var apiResource = new ApiResource(
GuidGenerator.Create(), GuidGenerator.Create(),
input.Name, input.Name,
input.DisplayName, input.DisplayName,
input.Description); input.Description);
await UpdateApiResourceByInputAsync(apiResource, input); await UpdateApiResourceByInputAsync(apiResource, input);
apiResource = await ApiResourceRepository.InsertAsync(apiResource); apiResource = await ApiResourceRepository.InsertAsync(apiResource);
await CurrentUnitOfWork.SaveChangesAsync(); await CurrentUnitOfWork.SaveChangesAsync();
return ObjectMapper.Map<ApiResource, ApiResourceDto>(apiResource); return ObjectMapper.Map<ApiResource, ApiResourceDto>(apiResource);
} }
[Authorize(AbpIdentityServerPermissions.ApiResources.Update)] [Authorize(AbpIdentityServerPermissions.ApiResources.Update)]
public virtual async Task<ApiResourceDto> UpdateAsync(Guid id, ApiResourceUpdateDto input) public virtual async Task<ApiResourceDto> UpdateAsync(Guid id, ApiResourceUpdateDto input)
{ {
var apiResource = await ApiResourceRepository.GetAsync(id); var apiResource = await ApiResourceRepository.GetAsync(id);
await UpdateApiResourceByInputAsync(apiResource, input); await UpdateApiResourceByInputAsync(apiResource, input);
apiResource = await ApiResourceRepository.UpdateAsync(apiResource); apiResource = await ApiResourceRepository.UpdateAsync(apiResource);
await CurrentUnitOfWork.SaveChangesAsync(); await CurrentUnitOfWork.SaveChangesAsync();
return ObjectMapper.Map<ApiResource, ApiResourceDto>(apiResource); return ObjectMapper.Map<ApiResource, ApiResourceDto>(apiResource);
} }
[Authorize(AbpIdentityServerPermissions.ApiResources.Delete)] [Authorize(AbpIdentityServerPermissions.ApiResources.Delete)]
public virtual async Task DeleteAsync(Guid id) public virtual async Task DeleteAsync(Guid id)
{ {
var apiResource = await ApiResourceRepository.GetAsync(id); var apiResource = await ApiResourceRepository.GetAsync(id);
await ApiResourceRepository.DeleteAsync(apiResource); await ApiResourceRepository.DeleteAsync(apiResource);
await CurrentUnitOfWork.SaveChangesAsync(); await CurrentUnitOfWork.SaveChangesAsync();
} }
protected virtual async Task UpdateApiResourceByInputAsync(ApiResource apiResource, ApiResourceCreateOrUpdateDto input) protected virtual async Task UpdateApiResourceByInputAsync(ApiResource apiResource, ApiResourceCreateOrUpdateDto input)
{ {
apiResource.ShowInDiscoveryDocument = input.ShowInDiscoveryDocument; apiResource.ShowInDiscoveryDocument = input.ShowInDiscoveryDocument;
apiResource.Enabled = input.Enabled; apiResource.Enabled = input.Enabled;
if (!string.Equals(apiResource.AllowedAccessTokenSigningAlgorithms, input.AllowedAccessTokenSigningAlgorithms, StringComparison.InvariantCultureIgnoreCase)) if (!string.Equals(apiResource.AllowedAccessTokenSigningAlgorithms, input.AllowedAccessTokenSigningAlgorithms, StringComparison.InvariantCultureIgnoreCase))
{ {
apiResource.AllowedAccessTokenSigningAlgorithms = input.AllowedAccessTokenSigningAlgorithms; apiResource.AllowedAccessTokenSigningAlgorithms = input.AllowedAccessTokenSigningAlgorithms;
} }
if (!string.Equals(apiResource.DisplayName, input.DisplayName, StringComparison.InvariantCultureIgnoreCase)) if (!string.Equals(apiResource.DisplayName, input.DisplayName, StringComparison.InvariantCultureIgnoreCase))
{ {
apiResource.DisplayName = input.DisplayName; apiResource.DisplayName = input.DisplayName;
} }
if (apiResource.Description?.Equals(input.Description, StringComparison.InvariantCultureIgnoreCase) if (apiResource.Description?.Equals(input.Description, StringComparison.InvariantCultureIgnoreCase)
== false) == false)
{ {
apiResource.Description = input.Description; apiResource.Description = input.Description;
} }
if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageClaims)) if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageClaims))
{ {
// 删除不存在的UserClaim // 删除不存在的UserClaim
apiResource.UserClaims.RemoveAll(claim => !input.UserClaims.Any(inputClaim => claim.Type == inputClaim.Type)); apiResource.UserClaims.RemoveAll(claim => !input.UserClaims.Any(inputClaim => claim.Type == inputClaim.Type));
foreach (var inputClaim in input.UserClaims) foreach (var inputClaim in input.UserClaims)
{ {
var userClaim = apiResource.FindClaim(inputClaim.Type); var userClaim = apiResource.FindClaim(inputClaim.Type);
if (userClaim == null) if (userClaim == null)
{ {
apiResource.AddUserClaim(inputClaim.Type); apiResource.AddUserClaim(inputClaim.Type);
} }
} }
} }
if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageScopes)) if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageScopes))
{ {
// 删除不存在的Scope // 删除不存在的Scope
apiResource.Scopes.RemoveAll(scope => !input.Scopes.Any(inputScope => scope.Scope == inputScope.Scope)); apiResource.Scopes.RemoveAll(scope => !input.Scopes.Any(inputScope => scope.Scope == inputScope.Scope));
foreach (var inputScope in input.Scopes) foreach (var inputScope in input.Scopes)
{ {
var scope = apiResource.FindScope(inputScope.Scope); var scope = apiResource.FindScope(inputScope.Scope);
if (scope == null) if (scope == null)
{ {
apiResource.AddScope(inputScope.Scope); apiResource.AddScope(inputScope.Scope);
} }
} }
} }
if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageSecrets)) if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageSecrets))
{ {
// 删除不存在的Secret // 删除不存在的Secret
apiResource.Secrets.RemoveAll(secret => !input.Secrets.Any(inputSecret => secret.Type == inputSecret.Type && secret.Value == inputSecret.Value)); apiResource.Secrets.RemoveAll(secret => !input.Secrets.Any(inputSecret => secret.Type == inputSecret.Type && secret.Value == inputSecret.Value));
foreach (var inputSecret in input.Secrets) foreach (var inputSecret in input.Secrets)
{ {
// 第一次重复校验已经加密过的字符串 // 第一次重复校验已经加密过的字符串
if (apiResource.FindSecret(inputSecret.Value, inputSecret.Type) == null) if (apiResource.FindSecret(inputSecret.Value, inputSecret.Type) == null)
{ {
var apiSecretValue = inputSecret.Value; var apiSecretValue = inputSecret.Value;
if (IdentityServerConstants.SecretTypes.SharedSecret.Equals(inputSecret.Type)) if (IdentityServerConstants.SecretTypes.SharedSecret.Equals(inputSecret.Type))
{ {
if (inputSecret.HashType == HashType.Sha256) if (inputSecret.HashType == HashType.Sha256)
{ {
apiSecretValue = inputSecret.Value.Sha256(); apiSecretValue = inputSecret.Value.Sha256();
} }
else if (inputSecret.HashType == HashType.Sha512) else if (inputSecret.HashType == HashType.Sha512)
{ {
apiSecretValue = inputSecret.Value.Sha512(); apiSecretValue = inputSecret.Value.Sha512();
} }
} }
// 加密之后还需要做一次校验 避免出现重复值 // 加密之后还需要做一次校验 避免出现重复值
var secret = apiResource.FindSecret(apiSecretValue, inputSecret.Type); var secret = apiResource.FindSecret(apiSecretValue, inputSecret.Type);
if (secret == null) if (secret == null)
{ {
apiResource.AddSecret(apiSecretValue, inputSecret.Expiration, inputSecret.Type, inputSecret.Description); apiResource.AddSecret(apiSecretValue, inputSecret.Expiration, inputSecret.Type, inputSecret.Description);
} }
} }
} }
} }
if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageProperties)) if (await IsGrantAsync(AbpIdentityServerPermissions.ApiResources.ManageProperties))
{ {
// 删除不存在的属性 // 删除不存在的属性
apiResource.Properties.RemoveAll(prop => !input.Properties.Any(inputProp => prop.Key == inputProp.Key)); apiResource.Properties.RemoveAll(prop => !input.Properties.Any(inputProp => prop.Key == inputProp.Key));
foreach (var inputProp in input.Properties) foreach (var inputProp in input.Properties)
{ {
var apiResourceProperty = apiResource.FindProperty(inputProp.Key); var apiResourceProperty = apiResource.FindProperty(inputProp.Key);
if (apiResourceProperty == null) if (apiResourceProperty == null)
{ {
apiResource.AddProperty(inputProp.Key, inputProp.Value); apiResource.AddProperty(inputProp.Key, inputProp.Value);
} }
else else
{ {
apiResourceProperty.Value = inputProp.Value; apiResourceProperty.Value = inputProp.Value;
} }
} }
} }
} }
} }
} }

Loading…
Cancel
Save