Add SetAsync to IPermissionManagementProvider and remove GrantAsync and RevokeAsync.

pull/216/head
Halil İbrahim Kalkan 8 years ago
parent 587de48ec2
commit 1ec8ebfbbb

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

@ -16,7 +16,7 @@ namespace Volo.Abp.Permissions
protected ICurrentTenant CurrentTenant { get; }
protected PermissionManagementProvider(
IPermissionGrantRepository permissionGrantRepository,
IPermissionGrantRepository permissionGrantRepository,
IGuidGenerator guidGenerator,
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);
if (grant != null)
return isGranted
? 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;
}
@ -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);
if (grant == null)
var permissionGrant = await PermissionGrantRepository.FindAsync(name, Name, providerKey);
if (permissionGrant == null)
{
return;
}
await PermissionGrantRepository.DeleteAsync(grant);
await PermissionGrantRepository.DeleteAsync(permissionGrant);
}
}
}

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

Loading…
Cancel
Save