mirror of https://github.com/abpframework/abp.git
6 changed files with 104 additions and 15 deletions
@ -0,0 +1,9 @@ |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace Volo.Abp.IdentityServer.IdentityResources |
|||
{ |
|||
public interface IIdentityResourceDataSeeder |
|||
{ |
|||
Task CreateStandardResourcesAsync(); |
|||
} |
|||
} |
|||
@ -0,0 +1,52 @@ |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.DependencyInjection; |
|||
using Volo.Abp.Guids; |
|||
|
|||
namespace Volo.Abp.IdentityServer.IdentityResources |
|||
{ |
|||
public class IdentityResourceDataSeeder : IIdentityResourceDataSeeder, ITransientDependency |
|||
{ |
|||
protected IIdentityResourceRepository IdentityResourceRepository { get; } |
|||
protected IGuidGenerator GuidGenerator { get; } |
|||
|
|||
public IdentityResourceDataSeeder( |
|||
IIdentityResourceRepository identityResourceRepository, |
|||
IGuidGenerator guidGenerator) |
|||
{ |
|||
IdentityResourceRepository = identityResourceRepository; |
|||
GuidGenerator = guidGenerator; |
|||
} |
|||
|
|||
public virtual async Task CreateStandardResourcesAsync() |
|||
{ |
|||
var resources = new IdentityServer4.Models.IdentityResource[] |
|||
{ |
|||
new IdentityServer4.Models.IdentityResources.OpenId(), |
|||
new IdentityServer4.Models.IdentityResources.Profile(), |
|||
new IdentityServer4.Models.IdentityResources.Email(), |
|||
new IdentityServer4.Models.IdentityResources.Address(), |
|||
new IdentityServer4.Models.IdentityResources.Phone() |
|||
}; |
|||
|
|||
foreach (var resource in resources) |
|||
{ |
|||
await AddIfNotExistsAsync(resource); |
|||
} |
|||
} |
|||
|
|||
protected virtual async Task AddIfNotExistsAsync(IdentityServer4.Models.IdentityResource resource) |
|||
{ |
|||
if (await IdentityResourceRepository.FindByNameAsync(resource.Name) != null) |
|||
{ |
|||
return; |
|||
} |
|||
|
|||
await IdentityResourceRepository.InsertAsync( |
|||
new IdentityResource( |
|||
GuidGenerator.Create(), |
|||
resource |
|||
) |
|||
); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue