mirror of https://github.com/abpframework/abp.git
5 changed files with 141 additions and 1 deletions
@ -0,0 +1,23 @@ |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace Volo.Abp.Authorization.Permissions.Resources; |
|||
|
|||
public interface IResourcePermissionChecker |
|||
{ |
|||
Task<bool> IsGrantedAsync( |
|||
string permissionName, |
|||
string resourceName, |
|||
string resourceKey |
|||
); |
|||
|
|||
Task<IDictionary<string, bool>> GetPermissionsAsync( |
|||
string resourceName, |
|||
string resourceKey |
|||
); |
|||
|
|||
Task<string[]> GetGrantedPermissionsAsync( |
|||
string resourceName, |
|||
string resourceKey |
|||
); |
|||
} |
|||
@ -0,0 +1,58 @@ |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
|
|||
namespace Volo.Abp.Authorization.Permissions.Resources; |
|||
|
|||
public static class ResourcePermissionCheckerExtensions |
|||
{ |
|||
public static Task<bool> IsGrantedAsync<TResource>( |
|||
this IResourcePermissionChecker resourcePermissionChecker, |
|||
string permissionName, |
|||
TResource resource, |
|||
object resourceKey |
|||
) |
|||
{ |
|||
Check.NotNull(resourcePermissionChecker, nameof(resourcePermissionChecker)); |
|||
Check.NotNullOrWhiteSpace(permissionName, nameof(permissionName)); |
|||
Check.NotNull(resource, nameof(resource)); |
|||
Check.NotNull(resourceKey, nameof(resourceKey)); |
|||
|
|||
return resourcePermissionChecker.IsGrantedAsync( |
|||
permissionName, |
|||
typeof(TResource).FullName!, |
|||
resourceKey.ToString()! |
|||
); |
|||
} |
|||
|
|||
public static Task<IDictionary<string, bool>> GetPermissionsAsync<TResource>( |
|||
this IResourcePermissionChecker resourcePermissionChecker, |
|||
TResource resource, |
|||
object resourceKey |
|||
) |
|||
{ |
|||
Check.NotNull(resourcePermissionChecker, nameof(resourcePermissionChecker)); |
|||
Check.NotNull(resource, nameof(resource)); |
|||
Check.NotNull(resourceKey, nameof(resourceKey)); |
|||
|
|||
return resourcePermissionChecker.GetPermissionsAsync( |
|||
typeof(TResource).FullName!, |
|||
resourceKey.ToString()! |
|||
); |
|||
} |
|||
|
|||
public static Task<string[]> GetGrantedPermissionsAsync<TResource>( |
|||
this IResourcePermissionChecker resourcePermissionChecker, |
|||
TResource resource, |
|||
object resourceKey |
|||
) |
|||
{ |
|||
Check.NotNull(resourcePermissionChecker, nameof(resourcePermissionChecker)); |
|||
Check.NotNull(resource, nameof(resource)); |
|||
Check.NotNull(resourceKey, nameof(resourceKey)); |
|||
|
|||
return resourcePermissionChecker.GetGrantedPermissionsAsync( |
|||
typeof(TResource).FullName!, |
|||
resourceKey.ToString()! |
|||
); |
|||
} |
|||
} |
|||
@ -0,0 +1,56 @@ |
|||
using System.Collections.Generic; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Domain.Entities; |
|||
|
|||
namespace Volo.Abp.Authorization.Permissions.Resources; |
|||
|
|||
public static class EntityResourcePermissionCheckerExtensions |
|||
{ |
|||
public static Task<bool> IsGrantedAsync<TEntity>( |
|||
this IResourcePermissionChecker resourcePermissionChecker, |
|||
string permissionName, |
|||
TEntity entity |
|||
) |
|||
where TEntity : class, IEntity |
|||
{ |
|||
Check.NotNull(resourcePermissionChecker, nameof(resourcePermissionChecker)); |
|||
Check.NotNullOrWhiteSpace(permissionName, nameof(permissionName)); |
|||
Check.NotNull(entity, nameof(entity)); |
|||
|
|||
return resourcePermissionChecker.IsGrantedAsync( |
|||
permissionName, |
|||
typeof(TEntity).FullName!, |
|||
entity.GetKeys().JoinAsString(",") |
|||
); |
|||
} |
|||
|
|||
public static Task<IDictionary<string, bool>> GetPermissionsAsync<TEntity>( |
|||
this IResourcePermissionChecker resourcePermissionChecker, |
|||
TEntity entity |
|||
) |
|||
where TEntity : class, IEntity |
|||
{ |
|||
Check.NotNull(resourcePermissionChecker, nameof(resourcePermissionChecker)); |
|||
Check.NotNull(entity, nameof(entity)); |
|||
|
|||
return resourcePermissionChecker.GetPermissionsAsync( |
|||
typeof(TEntity).FullName!, |
|||
entity.GetKeys().JoinAsString(",") |
|||
); |
|||
} |
|||
|
|||
public static Task<string[]> GetGrantedPermissionsAsync<TEntity>( |
|||
this IResourcePermissionChecker resourcePermissionChecker, |
|||
TEntity entity |
|||
) |
|||
where TEntity : class, IEntity |
|||
{ |
|||
Check.NotNull(resourcePermissionChecker, nameof(resourcePermissionChecker)); |
|||
Check.NotNull(entity, nameof(entity)); |
|||
|
|||
return resourcePermissionChecker.GetGrantedPermissionsAsync( |
|||
typeof(TEntity).FullName!, |
|||
entity.GetKeys().JoinAsString(",") |
|||
); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue