Browse Source

Rename ManagementPermission to ManagementPermissionName

pull/24374/head
maliming 10 months ago
parent
commit
5579fb7c54
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 2
      framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs
  2. 6
      framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs
  3. 6
      framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs
  4. 20
      framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/Resources/AuthorizationTestResourcePermissionDefinitionProvider.cs
  5. 14
      modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs
  6. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs
  7. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs
  8. 12
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs
  9. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer.cs
  10. 2
      modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementDbContextModelBuilderExtensions.cs
  11. 2
      modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer_Tests.cs

2
framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs

@ -52,7 +52,7 @@ public interface IPermissionDefinitionContext
PermissionDefinition AddResourcePermission( PermissionDefinition AddResourcePermission(
string name, string name,
string resourceName, string resourceName,
string managementPermission, string managementPermissionName,
ILocalizableString? displayName = null, ILocalizableString? displayName = null,
MultiTenancySides multiTenancySide = MultiTenancySides.Both, MultiTenancySides multiTenancySide = MultiTenancySides.Both,
bool isEnabled = true); bool isEnabled = true);

6
framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/PermissionDefinition.cs

@ -24,7 +24,7 @@ public class PermissionDefinition :
/// <summary> /// <summary>
/// Management permission of the resource permission. /// Management permission of the resource permission.
/// </summary> /// </summary>
public string? ManagementPermission { get; set; } public string? ManagementPermissionName { get; set; }
/// <summary> /// <summary>
/// Parent of this permission if one exists. /// Parent of this permission if one exists.
@ -89,14 +89,14 @@ public class PermissionDefinition :
protected internal PermissionDefinition( protected internal PermissionDefinition(
[NotNull] string name, [NotNull] string name,
string resourceName, string resourceName,
string managementPermission, string managementPermissionName,
ILocalizableString? displayName = null, ILocalizableString? displayName = null,
MultiTenancySides multiTenancySide = MultiTenancySides.Both, MultiTenancySides multiTenancySide = MultiTenancySides.Both,
bool isEnabled = true) bool isEnabled = true)
: this(name, displayName, multiTenancySide, isEnabled) : this(name, displayName, multiTenancySide, isEnabled)
{ {
ResourceName = Check.NotNull(resourceName, nameof(resourceName)); ResourceName = Check.NotNull(resourceName, nameof(resourceName));
ManagementPermission = Check.NotNull(managementPermission, nameof(managementPermission)); ManagementPermissionName = Check.NotNull(managementPermissionName, nameof(managementPermissionName));
} }
protected internal PermissionDefinition( protected internal PermissionDefinition(

6
framework/src/Volo.Abp.Authorization.Abstractions/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs

@ -95,14 +95,14 @@ public class PermissionDefinitionContext : IPermissionDefinitionContext
public virtual PermissionDefinition AddResourcePermission( public virtual PermissionDefinition AddResourcePermission(
string name, string name,
string resourceName, string resourceName,
string managementPermission, string managementPermissionName,
ILocalizableString? displayName = null, ILocalizableString? displayName = null,
MultiTenancySides multiTenancySide = MultiTenancySides.Both, MultiTenancySides multiTenancySide = MultiTenancySides.Both,
bool isEnabled = true) bool isEnabled = true)
{ {
Check.NotNull(name, nameof(name)); Check.NotNull(name, nameof(name));
Check.NotNull(resourceName, nameof(resourceName)); Check.NotNull(resourceName, nameof(resourceName));
Check.NotNull(managementPermission, nameof(managementPermission)); Check.NotNull(managementPermissionName, nameof(managementPermissionName));
if (ResourcePermissions.Any(x => x.ResourceName == resourceName && x.Name == name)) if (ResourcePermissions.Any(x => x.ResourceName == resourceName && x.Name == name))
{ {
@ -112,7 +112,7 @@ public class PermissionDefinitionContext : IPermissionDefinitionContext
var permission = new PermissionDefinition( var permission = new PermissionDefinition(
name, name,
resourceName, resourceName,
managementPermission, managementPermissionName,
displayName, displayName,
multiTenancySide, multiTenancySide,
isEnabled) isEnabled)

20
framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/Resources/AuthorizationTestResourcePermissionDefinitionProvider.cs

@ -15,7 +15,7 @@ public class AuthorizationTestResourcePermissionDefinitionProvider : PermissionD
} }
getGroup.AddPermission("TestEntityManagementPermission"); getGroup.AddPermission("TestEntityManagementPermission");
var permission1 = context.AddResourcePermission("MyResourcePermission1", resourceName: TestEntityResource.ResourceName, managementPermission: "TestEntityManagementPermission"); var permission1 = context.AddResourcePermission("MyResourcePermission1", resourceName: TestEntityResource.ResourceName, "TestEntityManagementPermission");
Assert.Throws<AbpException>(() => Assert.Throws<AbpException>(() =>
{ {
permission1.AddChild("MyResourcePermission1.ChildPermission1"); permission1.AddChild("MyResourcePermission1.ChildPermission1");
@ -23,22 +23,24 @@ public class AuthorizationTestResourcePermissionDefinitionProvider : PermissionD
permission1.StateCheckers.Add(new TestRequireEditionPermissionSimpleStateChecker());; permission1.StateCheckers.Add(new TestRequireEditionPermissionSimpleStateChecker());;
permission1[PermissionDefinitionContext.KnownPropertyNames.CurrentProviderName].ShouldBe(typeof(AuthorizationTestResourcePermissionDefinitionProvider).FullName); permission1[PermissionDefinitionContext.KnownPropertyNames.CurrentProviderName].ShouldBe(typeof(AuthorizationTestResourcePermissionDefinitionProvider).FullName);
context.AddResourcePermission("MyResourcePermission2", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission"); context.AddResourcePermission("MyResourcePermission2", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission");
context.AddResourcePermission("MyResourcePermission3", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission"); context.AddResourcePermission("MyResourcePermission3", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission");
context.AddResourcePermission("MyResourcePermission4", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission"); context.AddResourcePermission("MyResourcePermission4", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission");
context.AddResourcePermission("MyResourcePermission5", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission"); context.AddResourcePermission("MyResourcePermission5", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission");
context.AddResourcePermission("MyResourcePermission6", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission").WithProviders(nameof(TestResourcePermissionValueProvider1)); context.AddResourcePermission("MyResourcePermission6", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission").WithProviders(nameof(TestResourcePermissionValueProvider1));
context.AddResourcePermission("MyResourcePermission7", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission").WithProviders(nameof(TestResourcePermissionValueProvider2)); context.AddResourcePermission("MyResourcePermission7", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission").WithProviders(nameof(TestResourcePermissionValueProvider2));
Assert.Throws<AbpException>(() => Assert.Throws<AbpException>(() =>
{ {
context.AddResourcePermission("MyResourcePermission7", resourceName: typeof(TestEntityResource).FullName!, managementPermission: "TestEntityManagementPermission"); context.AddResourcePermission("MyResourcePermission7", resourceName: typeof(TestEntityResource).FullName!, "TestEntityManagementPermission");
}).Message.ShouldBe($"There is already an existing resource permission with name: MyResourcePermission7 for resource: {typeof(TestEntityResource).FullName}"); }).Message.ShouldBe($"There is already an existing resource permission with name: MyResourcePermission7 for resource: {typeof(TestEntityResource).FullName}");
context.AddResourcePermission("MyResourcePermission7", resourceName: typeof(TestEntityResource2).FullName!, managementPermission: "TestEntityManagementPermission").WithProviders(nameof(TestResourcePermissionValueProvider2)); context.AddResourcePermission("MyResourcePermission7", resourceName: typeof(TestEntityResource2).FullName!, "TestEntityManagementPermission").WithProviders(nameof(TestResourcePermissionValueProvider2));
context.GetResourcePermissionOrNull(TestEntityResource.ResourceName, "MyResourcePermission1").ShouldNotBeNull(); context.GetResourcePermissionOrNull(TestEntityResource.ResourceName, "MyResourcePermission1").ShouldNotBeNull();
context.GetResourcePermissionOrNull(TestEntityResource.ResourceName, "MyResourcePermission7").ShouldNotBeNull(); context.GetResourcePermissionOrNull(TestEntityResource.ResourceName, "MyResourcePermission7").ShouldNotBeNull();
context.GetResourcePermissionOrNull(TestEntityResource2.ResourceName, "MyResourcePermission7").ShouldNotBeNull(); context.GetResourcePermissionOrNull(TestEntityResource2.ResourceName, "MyResourcePermission7").ShouldNotBeNull();
context.GetResourcePermissionOrNull(TestEntityResource.ResourceName, "MyResourcePermission9").ShouldBeNull();
context.GetResourcePermissionOrNull(TestEntityResource2.ResourceName, "MyResourcePermission6").ShouldBeNull();
} }
} }

14
modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs

@ -170,7 +170,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
{ {
var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName);
if (!resourcePermissions.Any() || if (!resourcePermissions.Any() ||
!await AuthorizationService.IsGrantedAnyAsync(resourcePermissions.Select(p => p.ManagementPermission!).ToArray())) !await AuthorizationService.IsGrantedAnyAsync(resourcePermissions.Select(p => p.ManagementPermissionName!).ToArray()))
{ {
return new GetResourceProviderListResultDto();; return new GetResourceProviderListResultDto();;
} }
@ -190,7 +190,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
{ {
var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName);
if (!resourcePermissions.Any() || if (!resourcePermissions.Any() ||
!await AuthorizationService.IsGrantedAnyAsync(resourcePermissions.Select(p => p.ManagementPermission!).ToArray())) !await AuthorizationService.IsGrantedAnyAsync(resourcePermissions.Select(p => p.ManagementPermissionName!).ToArray()))
{ {
return new SearchProviderKeyListResultDto();; return new SearchProviderKeyListResultDto();;
} }
@ -217,7 +217,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName);
foreach (var resourcePermission in resourcePermissions) foreach (var resourcePermission in resourcePermissions)
{ {
if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermission!)) if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!))
{ {
result.Permissions.Add(new ResourcePermissionDefinitionDto() result.Permissions.Add(new ResourcePermissionDefinitionDto()
{ {
@ -257,7 +257,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
continue; continue;
} }
if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermission!)) if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!))
{ {
resourcePermissionGrantInfoDto.Permissions.Add(new GrantedResourcePermissionDto() resourcePermissionGrantInfoDto.Permissions.Add(new GrantedResourcePermissionDto()
{ {
@ -290,7 +290,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
continue; continue;
} }
if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermission!)) if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!))
{ {
result.Permissions.Add(new ResourcePermissionWithProdiverGrantInfoDto result.Permissions.Add(new ResourcePermissionWithProdiverGrantInfoDto
{ {
@ -309,7 +309,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName);
foreach (var resourcePermission in resourcePermissions) foreach (var resourcePermission in resourcePermissions)
{ {
if (!await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermission!)) if (!await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!))
{ {
continue; continue;
} }
@ -323,7 +323,7 @@ public class PermissionAppService : ApplicationService, IPermissionAppService
var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName); var resourcePermissions = await ResourcePermissionManager.GetAvailablePermissionsAsync(resourceName);
foreach (var resourcePermission in resourcePermissions) foreach (var resourcePermission in resourcePermissions)
{ {
if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermission!)) if (await AuthorizationService.IsGrantedAsync(resourcePermission.ManagementPermissionName!))
{ {
await ResourcePermissionManager.DeleteAsync(resourcePermission.Name, resourceName, resourceKey, providerName, providerKey); await ResourcePermissionManager.DeleteAsync(resourcePermission.Name, resourceName, resourceKey, providerName, providerKey);
} }

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo/Abp/PermissionManagement/PermissionDefinitionRecordConsts.cs

@ -15,5 +15,5 @@ public class PermissionDefinitionRecordConsts
public static int MaxResourceNameLength { get; set; } = 256; public static int MaxResourceNameLength { get; set; } = 256;
public static int MaxManagementPermissionLength { get; set; } = 128; public static int MaxManagementPermissionNameLength { get; set; } = 128;
} }

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/DynamicPermissionDefinitionStoreInMemoryCache.cs

@ -53,7 +53,7 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
{ {
context.AddResourcePermission(resourcePermission.Name, context.AddResourcePermission(resourcePermission.Name,
resourcePermission.ResourceName, resourcePermission.ResourceName,
resourcePermission.ManagementPermission, resourcePermission.ManagementPermissionName,
resourcePermission.DisplayName != null ? LocalizableStringSerializer.Deserialize(resourcePermission.DisplayName) : null, resourcePermission.DisplayName != null ? LocalizableStringSerializer.Deserialize(resourcePermission.DisplayName) : null,
resourcePermission.MultiTenancySide, resourcePermission.MultiTenancySide,
resourcePermission.IsEnabled); resourcePermission.IsEnabled);

12
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionRecord.cs

@ -14,7 +14,7 @@ public class PermissionDefinitionRecord : BasicAggregateRoot<Guid>, IHasExtraPro
public string ResourceName { get; set; } public string ResourceName { get; set; }
public string ManagementPermission { get; set; } public string ManagementPermissionName { get; set; }
public string ParentName { get; set; } public string ParentName { get; set; }
@ -47,7 +47,7 @@ public class PermissionDefinitionRecord : BasicAggregateRoot<Guid>, IHasExtraPro
string groupName, string groupName,
string name, string name,
string resourceName, string resourceName,
string managementPermission, string managementPermissionName,
string parentName, string parentName,
string displayName, string displayName,
bool isEnabled = true, bool isEnabled = true,
@ -63,7 +63,7 @@ public class PermissionDefinitionRecord : BasicAggregateRoot<Guid>, IHasExtraPro
} }
Name = Check.NotNullOrWhiteSpace(name, nameof(name), PermissionDefinitionRecordConsts.MaxNameLength); Name = Check.NotNullOrWhiteSpace(name, nameof(name), PermissionDefinitionRecordConsts.MaxNameLength);
ResourceName = resourceName; ResourceName = resourceName;
ManagementPermission = managementPermission; ManagementPermissionName = managementPermissionName;
ParentName = Check.Length(parentName, nameof(parentName), PermissionDefinitionRecordConsts.MaxNameLength); ParentName = Check.Length(parentName, nameof(parentName), PermissionDefinitionRecordConsts.MaxNameLength);
DisplayName = Check.NotNullOrWhiteSpace(displayName, nameof(displayName), PermissionDefinitionRecordConsts.MaxDisplayNameLength); DisplayName = Check.NotNullOrWhiteSpace(displayName, nameof(displayName), PermissionDefinitionRecordConsts.MaxDisplayNameLength);
IsEnabled = isEnabled; IsEnabled = isEnabled;
@ -87,7 +87,7 @@ public class PermissionDefinitionRecord : BasicAggregateRoot<Guid>, IHasExtraPro
return false; return false;
} }
if (ManagementPermission != otherRecord.ManagementPermission) if (ManagementPermissionName != otherRecord.ManagementPermissionName)
{ {
return false; return false;
} }
@ -147,9 +147,9 @@ public class PermissionDefinitionRecord : BasicAggregateRoot<Guid>, IHasExtraPro
ResourceName = otherRecord.ResourceName; ResourceName = otherRecord.ResourceName;
} }
if (ManagementPermission != otherRecord.ManagementPermission) if (ManagementPermissionName != otherRecord.ManagementPermissionName)
{ {
ManagementPermission = otherRecord.ManagementPermission; ManagementPermissionName = otherRecord.ManagementPermissionName;
} }
if (GroupName != otherRecord.GroupName) if (GroupName != otherRecord.GroupName)

2
modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer.cs

@ -87,7 +87,7 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
permissionGroup?.Name, permissionGroup?.Name,
permission.Name, permission.Name,
permission.ResourceName, permission.ResourceName,
permission.ManagementPermission, permission.ManagementPermissionName,
permission.Parent?.Name, permission.Parent?.Name,
LocalizableStringSerializer.Serialize(permission.DisplayName), LocalizableStringSerializer.Serialize(permission.DisplayName),
permission.IsEnabled, permission.IsEnabled,

2
modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo/Abp/PermissionManagement/EntityFrameworkCore/AbpPermissionManagementDbContextModelBuilderExtensions.cs

@ -72,7 +72,7 @@ public static class AbpPermissionManagementDbContextModelBuilderExtensions
b.Property(x => x.GroupName).HasMaxLength(PermissionGroupDefinitionRecordConsts.MaxNameLength); b.Property(x => x.GroupName).HasMaxLength(PermissionGroupDefinitionRecordConsts.MaxNameLength);
b.Property(x => x.Name).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength).IsRequired(); b.Property(x => x.Name).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength).IsRequired();
b.Property(x => x.ResourceName).HasMaxLength(PermissionDefinitionRecordConsts.MaxResourceNameLength); b.Property(x => x.ResourceName).HasMaxLength(PermissionDefinitionRecordConsts.MaxResourceNameLength);
b.Property(x => x.ManagementPermission).HasMaxLength(PermissionDefinitionRecordConsts.MaxManagementPermissionLength); b.Property(x => x.ManagementPermissionName).HasMaxLength(PermissionDefinitionRecordConsts.MaxManagementPermissionNameLength);
b.Property(x => x.ParentName).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength); b.Property(x => x.ParentName).HasMaxLength(PermissionDefinitionRecordConsts.MaxNameLength);
b.Property(x => x.DisplayName).HasMaxLength(PermissionDefinitionRecordConsts.MaxDisplayNameLength).IsRequired(); b.Property(x => x.DisplayName).HasMaxLength(PermissionDefinitionRecordConsts.MaxDisplayNameLength).IsRequired();
b.Property(x => x.Providers).HasMaxLength(PermissionDefinitionRecordConsts.MaxProvidersLength); b.Property(x => x.Providers).HasMaxLength(PermissionDefinitionRecordConsts.MaxProvidersLength);

2
modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo/Abp/PermissionManagement/PermissionDefinitionSerializer_Tests.cs

@ -111,7 +111,7 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
permissionRecord.Name.ShouldBe("ResourcePermission1"); permissionRecord.Name.ShouldBe("ResourcePermission1");
permissionRecord.GroupName.ShouldBe(null); permissionRecord.GroupName.ShouldBe(null);
permissionRecord.ResourceName.ShouldBe(TestEntityResource.ResourceName); permissionRecord.ResourceName.ShouldBe(TestEntityResource.ResourceName);
permissionRecord.ManagementPermission.ShouldBe("Permission1"); permissionRecord.ManagementPermissionName.ShouldBe("Permission1");
permissionRecord.DisplayName.ShouldBe("L:AbpPermissionManagement,ResourcePermission1"); permissionRecord.DisplayName.ShouldBe("L:AbpPermissionManagement,ResourcePermission1");
permissionRecord.GetProperty("CustomProperty2").ShouldBe("CustomValue2"); permissionRecord.GetProperty("CustomProperty2").ShouldBe("CustomValue2");
permissionRecord.Providers.ShouldBe("ProviderA,ProviderB"); permissionRecord.Providers.ShouldBe("ProviderA,ProviderB");

Loading…
Cancel
Save