Browse Source

Add SetAsync to IPermissionManagementProvider and remove GrantAsync and RevokeAsync.

pull/216/head
Halil İbrahim Kalkan 9 years ago
parent
commit
1ec8ebfbbb
  1. 6
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManagementProvider.cs
  2. 23
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManagementProvider.cs
  3. 9
      src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs

6
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/IPermissionManagementProvider.cs

@ -11,10 +11,6 @@ namespace Volo.Abp.Permissions
Task<PermissionValueProviderGrantInfo> CheckAsync([NotNull] string name, [NotNull] string providerName, [NotNull] string providerKey); Task<PermissionValueProviderGrantInfo> CheckAsync([NotNull] string name, [NotNull] string providerName, [NotNull] string providerKey);
//TODO: Instead of GrantAsync/RevokeAsync add SetAsync Task SetAsync([NotNull] string name, [NotNull] string providerKey, bool isGranted);
Task GrantAsync([NotNull] string name, [NotNull] string providerKey);
Task RevokeAsync([NotNull] string name, [NotNull] string providerKey);
} }
} }

23
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManagementProvider.cs

@ -16,7 +16,7 @@ namespace Volo.Abp.Permissions
protected ICurrentTenant CurrentTenant { get; } protected ICurrentTenant CurrentTenant { get; }
protected PermissionManagementProvider( protected PermissionManagementProvider(
IPermissionGrantRepository permissionGrantRepository, IPermissionGrantRepository permissionGrantRepository,
IGuidGenerator guidGenerator, IGuidGenerator guidGenerator,
ICurrentTenant currentTenant) ICurrentTenant currentTenant)
{ {
@ -39,10 +39,17 @@ namespace Volo.Abp.Permissions
); );
} }
public virtual async Task GrantAsync(string name, string providerKey) public virtual Task SetAsync(string name, string providerKey, bool isGranted)
{ {
var grant = await PermissionGrantRepository.FindAsync(name, Name, providerKey); return isGranted
if (grant != null) ? GrantAsync(name, providerKey)
: RevokeAsync(name, providerKey);
}
protected virtual async Task GrantAsync(string name, string providerKey)
{
var permissionGrant = await PermissionGrantRepository.FindAsync(name, Name, providerKey);
if (permissionGrant != null)
{ {
return; return;
} }
@ -58,15 +65,15 @@ namespace Volo.Abp.Permissions
); );
} }
public virtual async Task RevokeAsync(string name, string providerKey) protected virtual async Task RevokeAsync(string name, string providerKey)
{ {
var grant = await PermissionGrantRepository.FindAsync(name, Name, providerKey); var permissionGrant = await PermissionGrantRepository.FindAsync(name, Name, providerKey);
if (grant == null) if (permissionGrant == null)
{ {
return; return;
} }
await PermissionGrantRepository.DeleteAsync(grant); await PermissionGrantRepository.DeleteAsync(permissionGrant);
} }
} }
} }

9
src/Volo.Abp.Permissions.Domain/Volo/Abp/Permissions/PermissionManager.cs

@ -76,14 +76,7 @@ namespace Volo.Abp.Permissions
throw new AbpException("Unknown permission management provider: " + providerName); throw new AbpException("Unknown permission management provider: " + providerName);
} }
if (currentGrantInfo.IsGranted == false) await provider.SetAsync(permissionName, providerKey, isGranted);
{
await provider.GrantAsync(permissionName, providerKey);
}
else
{
await provider.RevokeAsync(permissionName, providerKey);
}
} }
public async Task<PermissionWithGrantedProviders> GetInternalAsync(PermissionDefinition permissionDefinition, string providerName, string providerKey) public async Task<PermissionWithGrantedProviders> GetInternalAsync(PermissionDefinition permissionDefinition, string providerName, string providerKey)

Loading…
Cancel
Save