|
|
@ -58,25 +58,7 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : |
|
|
resourcePermissionRecord.MultiTenancySide, |
|
|
resourcePermissionRecord.MultiTenancySide, |
|
|
resourcePermissionRecord.IsEnabled); |
|
|
resourcePermissionRecord.IsEnabled); |
|
|
|
|
|
|
|
|
if (!resourcePermissionRecord.Providers.IsNullOrWhiteSpace()) |
|
|
ApplyPermissionProperties(resourcePermission, resourcePermissionRecord); |
|
|
{ |
|
|
|
|
|
resourcePermission.Providers.AddRange(resourcePermissionRecord.Providers.Split(',')); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!resourcePermissionRecord.StateCheckers.IsNullOrWhiteSpace()) |
|
|
|
|
|
{ |
|
|
|
|
|
var checkers = StateCheckerSerializer |
|
|
|
|
|
.DeserializeArray( |
|
|
|
|
|
resourcePermissionRecord.StateCheckers, |
|
|
|
|
|
resourcePermission |
|
|
|
|
|
); |
|
|
|
|
|
resourcePermission.StateCheckers.AddRange(checkers); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
foreach (var property in resourcePermissionRecord.ExtraProperties) |
|
|
|
|
|
{ |
|
|
|
|
|
resourcePermission[property.Key] = property.Value; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ResourcePermissionDefinitions.Add(resourcePermission); |
|
|
ResourcePermissionDefinitions.Add(resourcePermission); |
|
|
} |
|
|
} |
|
|
@ -146,6 +128,16 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : |
|
|
|
|
|
|
|
|
PermissionDefinitions[permission.Name] = permission; |
|
|
PermissionDefinitions[permission.Name] = permission; |
|
|
|
|
|
|
|
|
|
|
|
ApplyPermissionProperties(permission, permissionRecord); |
|
|
|
|
|
|
|
|
|
|
|
foreach (var subPermission in allPermissionRecords.Where(p => p.ParentName == permissionRecord.Name)) |
|
|
|
|
|
{ |
|
|
|
|
|
AddPermissionRecursively(permission, subPermission, allPermissionRecords); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void ApplyPermissionProperties(PermissionDefinition permission, PermissionDefinitionRecord permissionRecord) |
|
|
|
|
|
{ |
|
|
if (!permissionRecord.Providers.IsNullOrWhiteSpace()) |
|
|
if (!permissionRecord.Providers.IsNullOrWhiteSpace()) |
|
|
{ |
|
|
{ |
|
|
permission.Providers.AddRange(permissionRecord.Providers.Split(',')); |
|
|
permission.Providers.AddRange(permissionRecord.Providers.Split(',')); |
|
|
@ -165,10 +157,5 @@ public class DynamicPermissionDefinitionStoreInMemoryCache : |
|
|
{ |
|
|
{ |
|
|
permission[property.Key] = property.Value; |
|
|
permission[property.Key] = property.Value; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
foreach (var subPermission in allPermissionRecords.Where(p => p.ParentName == permissionRecord.Name)) |
|
|
|
|
|
{ |
|
|
|
|
|
AddPermissionRecursively(permission, subPermission, allPermissionRecords); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|