|
|
|
@ -27,34 +27,26 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I |
|
|
|
GuidGenerator = guidGenerator; |
|
|
|
StringLocalizerFactory = stringLocalizerFactory; |
|
|
|
} |
|
|
|
|
|
|
|
public Task<PermissionDefinitionRecord> SerializeAsync( |
|
|
|
PermissionDefinition permission, |
|
|
|
PermissionGroupDefinition permissionGroup) |
|
|
|
|
|
|
|
public async Task<(PermissionGroupDefinitionRecord[], PermissionDefinitionRecord[])> |
|
|
|
SerializeAsync(IEnumerable<PermissionGroupDefinition> permissionGroups) |
|
|
|
{ |
|
|
|
using (CultureHelper.Use(CultureInfo.InvariantCulture)) |
|
|
|
var permissionGroupRecords = new List<PermissionGroupDefinitionRecord>(); |
|
|
|
var permissionRecords = new List<PermissionDefinitionRecord>(); |
|
|
|
|
|
|
|
foreach (var permissionGroup in permissionGroups) |
|
|
|
{ |
|
|
|
var permissionRecord = new PermissionDefinitionRecord( |
|
|
|
GuidGenerator.Create(), |
|
|
|
permissionGroup?.Name, |
|
|
|
permission.Name, |
|
|
|
permission.Parent?.Name, |
|
|
|
permission.DisplayName.Localize(StringLocalizerFactory), |
|
|
|
permission.IsEnabled, |
|
|
|
permission.MultiTenancySide, |
|
|
|
SerializeProviders(permission.Providers), |
|
|
|
SerializeStateCheckers(permission.StateCheckers) |
|
|
|
); |
|
|
|
|
|
|
|
foreach (var property in permission.Properties) |
|
|
|
permissionGroupRecords.Add(await SerializeAsync(permissionGroup)); |
|
|
|
|
|
|
|
foreach (var permission in permissionGroup.GetPermissionsWithChildren()) |
|
|
|
{ |
|
|
|
permissionRecord.SetProperty(property.Key, property.Value); |
|
|
|
permissionRecords.Add(await SerializeAsync(permission, permissionGroup)); |
|
|
|
} |
|
|
|
|
|
|
|
return Task.FromResult(permissionRecord); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return (permissionGroupRecords.ToArray(), permissionRecords.ToArray()); |
|
|
|
} |
|
|
|
|
|
|
|
public Task<PermissionGroupDefinitionRecord> SerializeAsync(PermissionGroupDefinition permissionGroup) |
|
|
|
{ |
|
|
|
using (CultureHelper.Use(CultureInfo.InvariantCulture)) |
|
|
|
@ -73,35 +65,43 @@ public class PermissionDefinitionSerializer : IPermissionDefinitionSerializer, I |
|
|
|
return Task.FromResult(permissionGroupRecord); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public async Task<(PermissionGroupDefinitionRecord[], PermissionDefinitionRecord[])> |
|
|
|
SerializeAsync(IEnumerable<PermissionGroupDefinition> permissionGroups) |
|
|
|
|
|
|
|
public Task<PermissionDefinitionRecord> SerializeAsync( |
|
|
|
PermissionDefinition permission, |
|
|
|
PermissionGroupDefinition permissionGroup) |
|
|
|
{ |
|
|
|
var permissionGroupRecords = new List<PermissionGroupDefinitionRecord>(); |
|
|
|
var permissionRecords = new List<PermissionDefinitionRecord>(); |
|
|
|
|
|
|
|
foreach (var permissionGroup in permissionGroups) |
|
|
|
using (CultureHelper.Use(CultureInfo.InvariantCulture)) |
|
|
|
{ |
|
|
|
permissionGroupRecords.Add(await SerializeAsync(permissionGroup)); |
|
|
|
|
|
|
|
foreach (var permission in permissionGroup.GetPermissionsWithChildren()) |
|
|
|
var permissionRecord = new PermissionDefinitionRecord( |
|
|
|
GuidGenerator.Create(), |
|
|
|
permissionGroup?.Name, |
|
|
|
permission.Name, |
|
|
|
permission.Parent?.Name, |
|
|
|
permission.DisplayName.Localize(StringLocalizerFactory), |
|
|
|
permission.IsEnabled, |
|
|
|
permission.MultiTenancySide, |
|
|
|
SerializeProviders(permission.Providers), |
|
|
|
SerializeStateCheckers(permission.StateCheckers) |
|
|
|
); |
|
|
|
|
|
|
|
foreach (var property in permission.Properties) |
|
|
|
{ |
|
|
|
permissionRecords.Add(await SerializeAsync(permission, permissionGroup)); |
|
|
|
permissionRecord.SetProperty(property.Key, property.Value); |
|
|
|
} |
|
|
|
|
|
|
|
return Task.FromResult(permissionRecord); |
|
|
|
} |
|
|
|
|
|
|
|
return (permissionGroupRecords.ToArray(), permissionRecords.ToArray()); |
|
|
|
} |
|
|
|
|
|
|
|
protected virtual string SerializeStateCheckers(List<ISimpleStateChecker<PermissionDefinition>> stateCheckers) |
|
|
|
{ |
|
|
|
return StateCheckerSerializer.Serialize(stateCheckers); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected virtual string SerializeProviders(ICollection<string> providers) |
|
|
|
{ |
|
|
|
return providers.Any() |
|
|
|
? providers.JoinAsString(",") |
|
|
|
: null; |
|
|
|
} |
|
|
|
|
|
|
|
protected virtual string SerializeStateCheckers(List<ISimpleStateChecker<PermissionDefinition>> stateCheckers) |
|
|
|
{ |
|
|
|
return StateCheckerSerializer.Serialize(stateCheckers); |
|
|
|
} |
|
|
|
} |