Browse Source

Merge pull request #6131 from abpframework/maliming/ClientPermissionValueProvider

Switch to host side in ClientPermissionValueProvider & ClientPermissionManagementProvider.
pull/6148/head
Halil İbrahim Kalkan 6 years ago
committed by GitHub
parent
commit
423dd650b0
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/ClientPermissionValueProvider.cs
  2. 3
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs
  3. 35
      modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo/Abp/PermissionManagement/IdentityServer/ClientPermissionManagementProvider.cs
  4. 3
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs
  5. 3
      templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs

16
framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/ClientPermissionValueProvider.cs

@ -1,4 +1,5 @@
using System.Threading.Tasks;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Security.Claims;
namespace Volo.Abp.Authorization.Permissions
@ -9,10 +10,12 @@ namespace Volo.Abp.Authorization.Permissions
public override string Name => ProviderName;
public ClientPermissionValueProvider(IPermissionStore permissionStore)
protected ICurrentTenant CurrentTenant { get; }
public ClientPermissionValueProvider(IPermissionStore permissionStore, ICurrentTenant currentTenant)
: base(permissionStore)
{
CurrentTenant = currentTenant;
}
public async override Task<PermissionGrantResult> CheckAsync(PermissionValueCheckContext context)
@ -24,9 +27,12 @@ namespace Volo.Abp.Authorization.Permissions
return PermissionGrantResult.Undefined;
}
return await PermissionStore.IsGrantedAsync(context.Permission.Name, Name, clientId)
? PermissionGrantResult.Granted
: PermissionGrantResult.Undefined;
using (CurrentTenant.Change(null))
{
return await PermissionStore.IsGrantedAsync(context.Permission.Name, Name, clientId)
? PermissionGrantResult.Granted
: PermissionGrantResult.Undefined;
}
}
}
}

3
modules/cms-kit/host/Volo.CmsKit.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs

@ -208,7 +208,8 @@ namespace Volo.CmsKit.IdentityServer
await _permissionDataSeeder.SeedAsync(
ClientPermissionValueProvider.ProviderName,
name,
permissions
permissions,
null
);
}

35
modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo/Abp/PermissionManagement/IdentityServer/ClientPermissionManagementProvider.cs

@ -1,4 +1,5 @@
using Volo.Abp.Authorization.Permissions;
using System.Threading.Tasks;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Guids;
using Volo.Abp.MultiTenancy;
@ -19,5 +20,37 @@ namespace Volo.Abp.PermissionManagement.IdentityServer
{
}
public override Task<PermissionValueProviderGrantInfo> CheckAsync(string name, string providerName, string providerKey)
{
using (CurrentTenant.Change(null))
{
return base.CheckAsync(name, providerName, providerKey);
}
}
protected override Task GrantAsync(string name, string providerKey)
{
using (CurrentTenant.Change(null))
{
return base.GrantAsync(name, providerKey);
}
}
protected override Task RevokeAsync(string name, string providerKey)
{
using (CurrentTenant.Change(null))
{
return base.RevokeAsync(name, providerKey);
}
}
public override Task SetAsync(string name, string providerKey, bool isGranted)
{
using (CurrentTenant.Change(null))
{
return base.SetAsync(name, providerKey, isGranted);
}
}
}
}

3
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/IdentityServer/IdentityServerDataSeedContributor.cs

@ -290,7 +290,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer
await _permissionDataSeeder.SeedAsync(
ClientPermissionValueProvider.ProviderName,
name,
permissions
permissions,
null
);
}

3
templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/IdentityServer/IdentityServerDataSeedContributor.cs

@ -285,7 +285,8 @@ namespace MyCompanyName.MyProjectName.IdentityServer
await _permissionDataSeeder.SeedAsync(
ClientPermissionValueProvider.ProviderName,
name,
permissions
permissions,
null
);
}

Loading…
Cancel
Save