Use ILocalizableStringSerializer while saving/getting permissions

pull/13806/head
Halil İbrahim Kalkan 3 years ago
parent e1a09e48a1
commit eb145d2198

@ -19,14 +19,19 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
protected IDictionary<string, PermissionGroupDefinition> PermissionGroupDefinitions { get; }
protected IDictionary<string, PermissionDefinition> PermissionDefinitions { get; }
protected ISimpleStateCheckerSerializer StateCheckerSerializer { get; }
protected ILocalizableStringSerializer LocalizableStringSerializer { get; }
public SemaphoreSlim SyncSemaphore { get; } = new(1, 1);
public DateTime? LastCheckTime { get; set; }
public DynamicPermissionDefinitionStoreInMemoryCache(ISimpleStateCheckerSerializer stateCheckerSerializer)
public DynamicPermissionDefinitionStoreInMemoryCache(
ISimpleStateCheckerSerializer stateCheckerSerializer,
ILocalizableStringSerializer localizableStringSerializer)
{
StateCheckerSerializer = stateCheckerSerializer;
LocalizableStringSerializer = localizableStringSerializer;
PermissionGroupDefinitions = new Dictionary<string, PermissionGroupDefinition>();
PermissionDefinitions = new Dictionary<string, PermissionDefinition>();
}
@ -44,7 +49,7 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
{
var permissionGroup = context.AddGroup(
permissionGroupRecord.Name,
new FixedLocalizableString(permissionGroupRecord.DisplayName) //TODO: Consider localization
LocalizableStringSerializer.Deserialize(permissionGroupRecord.DisplayName)
);
PermissionGroupDefinitions[permissionGroup.Name] = permissionGroup;
@ -87,7 +92,7 @@ public class DynamicPermissionDefinitionStoreInMemoryCache :
{
var permission = permissionContainer.AddPermission(
permissionRecord.Name,
new FixedLocalizableString(permissionRecord.DisplayName),
LocalizableStringSerializer.Deserialize(permissionRecord.DisplayName),
permissionRecord.MultiTenancySide,
permissionRecord.IsEnabled
);

@ -2,7 +2,6 @@
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
@ -16,16 +15,16 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
{
protected ISimpleStateCheckerSerializer StateCheckerSerializer { get; }
protected IGuidGenerator GuidGenerator { get; }
protected IStringLocalizerFactory StringLocalizerFactory { get; }
protected ILocalizableStringSerializer LocalizableStringSerializer { get; }
public PermissionDefinitionSerializer(
IGuidGenerator guidGenerator,
IStringLocalizerFactory stringLocalizerFactory,
ISimpleStateCheckerSerializer stateCheckerSerializer)
ISimpleStateCheckerSerializer stateCheckerSerializer,
ILocalizableStringSerializer localizableStringSerializer)
{
StateCheckerSerializer = stateCheckerSerializer;
LocalizableStringSerializer = localizableStringSerializer;
GuidGenerator = guidGenerator;
StringLocalizerFactory = stringLocalizerFactory;
}
public async Task<(PermissionGroupDefinitionRecord[], PermissionDefinitionRecord[])>
@ -54,7 +53,7 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
var permissionGroupRecord = new PermissionGroupDefinitionRecord(
GuidGenerator.Create(),
permissionGroup.Name,
permissionGroup.DisplayName.Localize(StringLocalizerFactory)
LocalizableStringSerializer.Serialize(permissionGroup.DisplayName)
);
foreach (var property in permissionGroup.Properties)
@ -77,7 +76,7 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I
permissionGroup?.Name,
permission.Name,
permission.Parent?.Name,
permission.DisplayName.Localize(StringLocalizerFactory),
LocalizableStringSerializer.Serialize(permission.DisplayName),
permission.IsEnabled,
permission.MultiTenancySide,
SerializeProviders(permission.Providers),

@ -8,6 +8,7 @@ using Volo.Abp.Features;
using Volo.Abp.GlobalFeatures;
using Volo.Abp.Localization;
using Volo.Abp.MultiTenancy;
using Volo.Abp.PermissionManagement.Localization;
using Xunit;
namespace Volo.Abp.PermissionManagement;
@ -36,7 +37,7 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
//Assert
permissionGroupRecord.Name.ShouldBe("Group1");
permissionGroupRecord.DisplayName.ShouldBe("Group one");
permissionGroupRecord.DisplayName.ShouldBe("F:Group one");
permissionGroupRecord.GetProperty("CustomProperty1").ShouldBe("CustomValue1");
}
@ -49,7 +50,7 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
var group1 = CreatePermissionGroup1(context);
var permission1 = group1.AddPermission(
"Permission1",
new FixedLocalizableString("Permission one"),
new LocalizableString(typeof(AbpPermissionManagementResource), "Permission1"),
MultiTenancySides.Tenant
)
.WithProviders("ProviderA", "ProviderB")
@ -70,7 +71,7 @@ public class PermissionDefinitionSerializer_Tests : PermissionTestBase
permissionRecord.Name.ShouldBe("Permission1");
permissionRecord.GroupName.ShouldBe("Group1");
permissionRecord.DisplayName.ShouldBe("Permission one");
permissionRecord.DisplayName.ShouldBe("L:AbpPermissionManagement,Permission1");
permissionRecord.GetProperty("CustomProperty2").ShouldBe("CustomValue2");
permissionRecord.Providers.ShouldBe("ProviderA,ProviderB");
permissionRecord.MultiTenancySide.ShouldBe(MultiTenancySides.Tenant);

Loading…
Cancel
Save