Serialize PermissionGroupDefinition groups

pull/13806/head
Halil İbrahim Kalkan 3 years ago
parent acc5789a7e
commit 65f21a7b70

@ -64,7 +64,21 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
public Task<PermissionGroupDefinitionRecord> SerializeAsync(PermissionGroupDefinition permissionGroup)
{
throw new System.NotImplementedException();
using (CultureHelper.Use(CultureInfo.InvariantCulture))
{
var permissionGroupRecord = new PermissionGroupDefinitionRecord(
GuidGenerator.Create(),
permissionGroup.Name,
permissionGroup.DisplayName.Localize(StringLocalizerFactory)
);
foreach (var property in permissionGroup.Properties)
{
permissionGroupRecord.SetProperty(property.Key, property.Value);
}
return Task.FromResult(permissionGroupRecord);
}
}
public Task<PermissionGroupDefinition> DeserializeAsync(PermissionGroupDefinitionRecord permissionGroupRecord)

@ -1,4 +1,6 @@
using System.Threading.Tasks;
using System;
using System.Linq;
using System.Threading.Tasks;
using Shouldly;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Data;
@ -18,6 +20,25 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
{
_serializer = GetRequiredService<IPermissionDefinitionSerializer>();
}
[Fact]
public async Task Serialize_Permission_Group_Definition()
{
// Arrange
var context = new PermissionDefinitionContext(null);
var group1 = CreatePermissionGroup1(context);
// Act
var permissionGroupRecord = await _serializer.SerializeAsync(group1);
//Assert
permissionGroupRecord.Name.ShouldBe("Group1");
permissionGroupRecord.DisplayName.ShouldBe("Group one");
permissionGroupRecord.GetProperty("CustomProperty1").ShouldBe("CustomValue1");
}
[Fact]
public async Task Serialize_Complex_Permission_Definition()
@ -52,6 +73,41 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
permissionRecord.MultiTenancySide.ShouldBe(MultiTenancySides.Tenant);
permissionRecord.StateCheckers.ShouldBe("[{\"T\":\"GF\",\"A\":true,\"N\":[\"GlobalFeature1\",\"GlobalFeature2\"]}]");
}
[Fact(Skip = "Not implemented yet")]
public async Task Deserialize_Complex_Permission_Definition()
{
// Arrange
var permissionRecord = new PermissionDefinitionRecord
{
Name = "Permission1",
GroupName = "Group1",
DisplayName = "Permission one",
Providers = "ProviderA,ProviderB",
IsEnabled = true,
MultiTenancySide = MultiTenancySides.Tenant,
StateCheckers = "[{\"T\":\"GF\",\"A\":true,\"N\":[\"GlobalFeature1\",\"GlobalFeature2\"]}]"
};
// Act
var permission = await _serializer.DeserializeAsync(permissionRecord);
//Assert
permission.Name.ShouldBe("Permission1");
permission.DisplayName.ShouldBeOfType<FixedLocalizableString>();
permission.DisplayName.As<FixedLocalizableString>().Value.ShouldBe("Permission one");
permission.Parent.ShouldBeNull();
permission.MultiTenancySide.ShouldBe(MultiTenancySides.Tenant);
permission.IsEnabled.ShouldBe(true);
permission.Providers.Count.ShouldBe(2);
permission.Providers.ShouldContain("ProviderA");
permission.Providers.ShouldContain("ProviderB");
permission.StateCheckers.Count.ShouldBe(1);
permission.StateCheckers[0].ShouldBeOfType<RequireGlobalFeaturesSimpleStateChecker<PermissionDefinition>>();
}
private static PermissionGroupDefinition CreatePermissionGroup1(
IPermissionDefinitionContext context)

Loading…
Cancel
Save