Browse Source

identityserver ApiResourceRepository changes

pull/556/head
Yunus Emre Kalkan 8 years ago
parent
commit
7f382a6e28
  1. 12
      modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/ApiResource.cs
  2. 5
      modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/ApiScope.cs
  3. 38
      modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs

12
modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/ApiResource.cs

@ -63,7 +63,8 @@ namespace Volo.Abp.IdentityServer.ApiResources
string description = null,
bool required = false,
bool emphasize = false,
bool showInDiscoveryDocument = true)
bool showInDiscoveryDocument = true,
ApiScopeClaim[] userClaims = null)
{
Scopes.Add(new ApiScope(Id, name, displayName, description, required, emphasize, showInDiscoveryDocument));
}
@ -77,5 +78,14 @@ namespace Volo.Abp.IdentityServer.ApiResources
{
UserClaims.Clear();
}
public virtual void RemoveAllScopes()
{
foreach (var scope in Scopes)
{
scope.RemoveAllUserClaims();
}
Scopes.Clear();
}
}
}

5
modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/ApiScope.cs

@ -56,6 +56,11 @@ namespace Volo.Abp.IdentityServer.ApiResources
UserClaims.Add(new ApiScopeClaim(ApiResourceId, Name, type));
}
public virtual void RemoveAllUserClaims()
{
UserClaims.Clear();
}
public override object[] GetKeys()
{
return new object[] { ApiResourceId, Name };

38
modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs

@ -66,6 +66,44 @@ namespace Volo.Abp.IdentityServer.ApiResources
return await DbSet.CountAsync();
}
public override async Task<ApiResource> UpdateAsync(ApiResource entity, bool autoSave = false, CancellationToken cancellationToken = default)
{
var scopeClaims = DbContext.Set<ApiScopeClaim>().Where(sc => sc.ApiResourceId == entity.Id);
foreach (var scopeClaim in scopeClaims)
{
DbContext.Set<ApiScopeClaim>().Remove(scopeClaim);
}
var scopes = DbContext.Set<ApiScope>().Where(s => s.ApiResourceId == entity.Id);
foreach (var scope in scopes)
{
DbContext.Set<ApiScope>().Remove(scope);
}
return await base.UpdateAsync(entity, autoSave, cancellationToken);
}
public override async Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default)
{
var scopeClaims = DbContext.Set<ApiScopeClaim>().Where(sc => sc.ApiResourceId == id);
foreach (var scopeClaim in scopeClaims)
{
DbContext.Set<ApiScopeClaim>().Remove(scopeClaim);
}
var scopes = DbContext.Set<ApiScope>().Where(s => s.ApiResourceId == id);
foreach (var scope in scopes)
{
DbContext.Set<ApiScope>().Remove(scope);
}
await base.DeleteAsync(id, autoSave, cancellationToken);
}
public override IQueryable<ApiResource> WithDetails()
{
return GetQueryable().IncludeDetails();

Loading…
Cancel
Save