|
|
|
@ -1,4 +1,4 @@ |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using IdentityServer4.Models; |
|
|
|
@ -6,8 +6,7 @@ using IdentityServer4.Stores; |
|
|
|
using Volo.Abp.IdentityServer.ApiResources; |
|
|
|
using Volo.Abp.IdentityServer.IdentityResources; |
|
|
|
using Volo.Abp.ObjectMapping; |
|
|
|
using ApiResource = IdentityServer4.Models.ApiResource; |
|
|
|
using IdentityResource = Volo.Abp.IdentityServer.IdentityResources.IdentityResource; |
|
|
|
using ApiScope = Volo.Abp.IdentityServer.ApiResources.ApiScope; |
|
|
|
|
|
|
|
namespace Volo.Abp.IdentityServer |
|
|
|
{ |
|
|
|
@ -15,45 +14,70 @@ namespace Volo.Abp.IdentityServer |
|
|
|
{ |
|
|
|
protected IIdentityResourceRepository IdentityResourceRepository { get; } |
|
|
|
protected IApiResourceRepository ApiResourceRepository { get; } |
|
|
|
protected IApiScopeRepository ApiScopeRepository { get; } |
|
|
|
protected IObjectMapper<AbpIdentityServerDomainModule> ObjectMapper { get; } |
|
|
|
|
|
|
|
public ResourceStore( |
|
|
|
IIdentityResourceRepository identityResourceRepository, |
|
|
|
IObjectMapper<AbpIdentityServerDomainModule> objectMapper, |
|
|
|
IApiResourceRepository apiResourceRepository) |
|
|
|
IIdentityResourceRepository identityResourceRepository, |
|
|
|
IObjectMapper<AbpIdentityServerDomainModule> objectMapper, |
|
|
|
IApiResourceRepository apiResourceRepository, |
|
|
|
IApiScopeRepository apiScopeRepository) |
|
|
|
{ |
|
|
|
IdentityResourceRepository = identityResourceRepository; |
|
|
|
ObjectMapper = objectMapper; |
|
|
|
ApiResourceRepository = apiResourceRepository; |
|
|
|
ApiScopeRepository = apiScopeRepository; |
|
|
|
} |
|
|
|
|
|
|
|
public virtual async Task<IEnumerable<IdentityServer4.Models.IdentityResource>> FindIdentityResourcesByScopeAsync(IEnumerable<string> scopeNames) |
|
|
|
/// <summary>
|
|
|
|
/// Gets identity resources by scope name.
|
|
|
|
/// </summary>
|
|
|
|
public virtual async Task<IEnumerable<IdentityServer4.Models.IdentityResource>> FindIdentityResourcesByScopeNameAsync(IEnumerable<string> scopeNames) |
|
|
|
{ |
|
|
|
var resource = await IdentityResourceRepository.GetListByScopesAsync(scopeNames.ToArray(), includeDetails: true); |
|
|
|
return ObjectMapper.Map<List<IdentityResource>, List<IdentityServer4.Models.IdentityResource>>(resource); |
|
|
|
var resource = await IdentityResourceRepository.GetListByScopeNameAsync(scopeNames.ToArray(), includeDetails: true); |
|
|
|
return ObjectMapper.Map<List<Volo.Abp.IdentityServer.IdentityResources.IdentityResource>, List<IdentityServer4.Models.IdentityResource>>(resource); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual async Task<IEnumerable<ApiResource>> FindApiResourcesByScopeAsync(IEnumerable<string> scopeNames) |
|
|
|
/// <summary>
|
|
|
|
/// Gets API scopes by scope name.
|
|
|
|
/// </summary>
|
|
|
|
public virtual async Task<IEnumerable<IdentityServer4.Models.ApiScope>> FindApiScopesByNameAsync(IEnumerable<string> scopeNames) |
|
|
|
{ |
|
|
|
var scopes = await ApiScopeRepository.GetListByNameAsync(scopeNames.ToArray(), includeDetails: true); |
|
|
|
return ObjectMapper.Map<List<Volo.Abp.IdentityServer.ApiResources.ApiScope>, List<IdentityServer4.Models.ApiScope>>(scopes); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Gets API resources by scope name.
|
|
|
|
/// </summary>
|
|
|
|
public virtual async Task<IEnumerable<IdentityServer4.Models.ApiResource>> FindApiResourcesByScopeNameAsync(IEnumerable<string> scopeNames) |
|
|
|
{ |
|
|
|
var resources = await ApiResourceRepository.GetListByScopesAsync(scopeNames.ToArray(), includeDetails: true); |
|
|
|
return resources.Select(x => ObjectMapper.Map<ApiResources.ApiResource, ApiResource>(x)); |
|
|
|
return ObjectMapper.Map<List<Volo.Abp.IdentityServer.ApiResources.ApiResource>, List<IdentityServer4.Models.ApiResource>>(resources); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual async Task<ApiResource> FindApiResourceAsync(string name) |
|
|
|
/// <summary>
|
|
|
|
/// Gets API resources by API resource name.
|
|
|
|
/// </summary>
|
|
|
|
public virtual async Task<IEnumerable<IdentityServer4.Models.ApiResource>> FindApiResourcesByNameAsync(IEnumerable<string> apiResourceNames) |
|
|
|
{ |
|
|
|
var resource = await ApiResourceRepository.FindByNameAsync(name); |
|
|
|
return ObjectMapper.Map<ApiResources.ApiResource, ApiResource>(resource); |
|
|
|
var resources = await ApiResourceRepository.FindByNameAsync(apiResourceNames.ToArray(), includeDetails: true); |
|
|
|
return ObjectMapper.Map<List<Volo.Abp.IdentityServer.ApiResources.ApiResource>, List<IdentityServer4.Models.ApiResource>>(resources); |
|
|
|
} |
|
|
|
|
|
|
|
public virtual async Task<Resources> GetAllResourcesAsync() |
|
|
|
/// <summary>
|
|
|
|
/// Gets all resources.
|
|
|
|
/// </summary>
|
|
|
|
public virtual async Task<IdentityServer4.Models.Resources> GetAllResourcesAsync() |
|
|
|
{ |
|
|
|
var identityResources = await IdentityResourceRepository.GetListAsync(includeDetails: true); |
|
|
|
var apiResources = await ApiResourceRepository.GetListAsync(includeDetails: true); |
|
|
|
var apiScopes = await ApiScopeRepository.GetListAsync(includeDetails: true); |
|
|
|
|
|
|
|
return new Resources( |
|
|
|
ObjectMapper.Map<List<IdentityResource>, IdentityServer4.Models.IdentityResource[]>(identityResources), |
|
|
|
ObjectMapper.Map<List<ApiResources.ApiResource>, ApiResource[]>(apiResources) |
|
|
|
); |
|
|
|
ObjectMapper.Map<List<Volo.Abp.IdentityServer.IdentityResources.IdentityResource>, List<IdentityServer4.Models.IdentityResource>>(identityResources), |
|
|
|
ObjectMapper.Map<List<Volo.Abp.IdentityServer.ApiResources.ApiResource>, List<IdentityServer4.Models.ApiResource>>(apiResources), |
|
|
|
ObjectMapper.Map<List<Volo.Abp.IdentityServer.ApiResources.ApiScope>, List<IdentityServer4.Models.ApiScope>>(apiScopes)); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|