Browse Source

Move `DeletedPermissions` and `DeletedPermissionGroups` to `AbpPermissionOptions`.

pull/13881/head
maliming 4 years ago
parent
commit
05ba7b40ac
  1. 10
      framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/AbpPermissionOptions.cs
  2. 7
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs
  3. 22
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs

10
framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/AbpPermissionOptions.cs

@ -1,4 +1,5 @@
using Volo.Abp.Collections; using System.Collections.Generic;
using Volo.Abp.Collections;
namespace Volo.Abp.Authorization.Permissions; namespace Volo.Abp.Authorization.Permissions;
@ -8,9 +9,16 @@ public class AbpPermissionOptions
public ITypeList<IPermissionValueProvider> ValueProviders { get; } public ITypeList<IPermissionValueProvider> ValueProviders { get; }
public HashSet<string> DeletedPermissions { get; }
public HashSet<string> DeletedPermissionGroups { get; }
public AbpPermissionOptions() public AbpPermissionOptions()
{ {
DefinitionProviders = new TypeList<IPermissionDefinitionProvider>(); DefinitionProviders = new TypeList<IPermissionDefinitionProvider>();
ValueProviders = new TypeList<IPermissionValueProvider>(); ValueProviders = new TypeList<IPermissionValueProvider>();
DeletedPermissions = new HashSet<string>();
DeletedPermissionGroups = new HashSet<string>();
} }
} }

7
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionManagementOptions.cs

@ -9,10 +9,6 @@ public class PermissionManagementOptions
public Dictionary<string, string> ProviderPolicies { get; } public Dictionary<string, string> ProviderPolicies { get; }
public HashSet<string> DeletedPermissions { get; }
public HashSet<string> DeletedPermissionGroups { get; }
/// <summary> /// <summary>
/// Default: true. /// Default: true.
/// </summary> /// </summary>
@ -27,8 +23,5 @@ public class PermissionManagementOptions
{ {
ManagementProviders = new TypeList<IPermissionManagementProvider>(); ManagementProviders = new TypeList<IPermissionManagementProvider>();
ProviderPolicies = new Dictionary<string, string>(); ProviderPolicies = new Dictionary<string, string>();
DeletedPermissions = new HashSet<string>();
DeletedPermissionGroups = new HashSet<string>();
} }
} }

22
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/StaticPermissionSaver.cs

@ -24,7 +24,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
protected IDistributedCache Cache { get; } protected IDistributedCache Cache { get; }
protected IApplicationNameAccessor ApplicationNameAccessor { get; } protected IApplicationNameAccessor ApplicationNameAccessor { get; }
protected IAbpDistributedLock DistributedLock { get; } protected IAbpDistributedLock DistributedLock { get; }
protected PermissionManagementOptions PermissionManagementOptions { get; } protected AbpPermissionOptions PermissionOptions { get; }
protected ICancellationTokenProvider CancellationTokenProvider { get; } protected ICancellationTokenProvider CancellationTokenProvider { get; }
protected AbpDistributedCacheOptions CacheOptions { get; } protected AbpDistributedCacheOptions CacheOptions { get; }
@ -37,7 +37,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
IOptions<AbpDistributedCacheOptions> cacheOptions, IOptions<AbpDistributedCacheOptions> cacheOptions,
IApplicationNameAccessor applicationNameAccessor, IApplicationNameAccessor applicationNameAccessor,
IAbpDistributedLock distributedLock, IAbpDistributedLock distributedLock,
IOptions<PermissionManagementOptions> permissionManagementOptions, IOptions<AbpPermissionOptions> permissionOptions,
ICancellationTokenProvider cancellationTokenProvider) ICancellationTokenProvider cancellationTokenProvider)
{ {
StaticStore = staticStore; StaticStore = staticStore;
@ -48,7 +48,7 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
ApplicationNameAccessor = applicationNameAccessor; ApplicationNameAccessor = applicationNameAccessor;
DistributedLock = distributedLock; DistributedLock = distributedLock;
CancellationTokenProvider = cancellationTokenProvider; CancellationTokenProvider = cancellationTokenProvider;
PermissionManagementOptions = permissionManagementOptions.Value; PermissionOptions = permissionOptions.Value;
CacheOptions = cacheOptions.Value; CacheOptions = cacheOptions.Value;
} }
@ -80,8 +80,8 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
var currentHash = CalculateHash( var currentHash = CalculateHash(
permissionGroupRecords, permissionGroupRecords,
permissionRecords, permissionRecords,
PermissionManagementOptions.DeletedPermissionGroups, PermissionOptions.DeletedPermissionGroups,
PermissionManagementOptions.DeletedPermissions PermissionOptions.DeletedPermissions
); );
if (cachedHash == currentHash) if (cachedHash == currentHash)
@ -156,9 +156,9 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
} }
/* Deleted */ /* Deleted */
var deletedRecords = PermissionManagementOptions.DeletedPermissionGroups.Any() var deletedRecords = PermissionOptions.DeletedPermissionGroups.Any()
? permissionGroupRecordsInDatabase.Values ? permissionGroupRecordsInDatabase.Values
.Where(x => PermissionManagementOptions.DeletedPermissionGroups.Contains(x.Name)) .Where(x => PermissionOptions.DeletedPermissionGroups.Contains(x.Name))
.ToArray() .ToArray()
: Array.Empty<PermissionGroupDefinitionRecord>(); : Array.Empty<PermissionGroupDefinitionRecord>();
@ -213,19 +213,19 @@ public class StaticPermissionSaver : IStaticPermissionSaver, ITransientDependenc
/* Deleted */ /* Deleted */
var deletedRecords = new List<PermissionDefinitionRecord>(); var deletedRecords = new List<PermissionDefinitionRecord>();
if (PermissionManagementOptions.DeletedPermissions.Any()) if (PermissionOptions.DeletedPermissions.Any())
{ {
deletedRecords.AddRange( deletedRecords.AddRange(
permissionRecordsInDatabase.Values permissionRecordsInDatabase.Values
.Where(x => PermissionManagementOptions.DeletedPermissions.Contains(x.Name)) .Where(x => PermissionOptions.DeletedPermissions.Contains(x.Name))
); );
} }
if (PermissionManagementOptions.DeletedPermissionGroups.Any()) if (PermissionOptions.DeletedPermissionGroups.Any())
{ {
deletedRecords.AddIfNotContains( deletedRecords.AddIfNotContains(
permissionRecordsInDatabase.Values permissionRecordsInDatabase.Values
.Where(x => PermissionManagementOptions.DeletedPermissionGroups.Contains(x.GroupName)) .Where(x => PermissionOptions.DeletedPermissionGroups.Contains(x.GroupName))
); );
} }

Loading…
Cancel
Save