From 0f846ba7985ea2a1e513b8666e0ee5b4d24341ce Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Thu, 21 Mar 2024 16:17:00 -0600 Subject: [PATCH 1/7] Recursive for children ClaimSetResourceClaim --- .config/dotnet-tools.json | 12 ++++++++ .../Features/ClaimSets/ClaimSetModel.cs | 28 ++++++++++++++++++- .../Features/ClaimSets/ImportClaimSet.cs | 5 ++-- .../ClaimSets/ResourceClaimValidator.cs | 4 +-- .../AutoMapper/AdminApiMappingProfile.cs | 7 +++++ 5 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 .config/dotnet-tools.json diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 000000000..a4713c52b --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "csharpier": { + "version": "0.27.3", + "commands": [ + "dotnet-csharpier" + ] + } + } +} \ No newline at end of file diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index 31a5393c9..fb87eb7e4 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -44,8 +44,34 @@ public class ClaimSetResourceClaimModel public List AuthorizationStrategyOverridesForCRUD { get; set; } [SwaggerSchema(Description = "Children are collection of ResourceClaim")] - public List Children { get; set; } + public List Children { get; set; } public ClaimSetResourceClaimModel() + { + Children = new List(); + DefaultAuthorizationStrategiesForCRUD = new List(); + AuthorizationStrategyOverridesForCRUD = new List(); + Actions = new List(); + } +} + + +public class ChildrenClaimSetResource +{ + [SwaggerSchema(ReadOnly = true)] + public int Id { get; set; } + public string? Name { get; set; } + public List? Actions { get; set; } + + [JsonPropertyName("_defaultAuthorizationStrategiesForCRUD")] + [SwaggerSchema(ReadOnly = true)] + public List DefaultAuthorizationStrategiesForCRUD { get; set; } + + public List AuthorizationStrategyOverridesForCRUD { get; set; } + + [SwaggerSchema(Description = "Children are collection of ResourceClaim")] + public List Children { get; set; } + + public ChildrenClaimSetResource() { Children = new List(); DefaultAuthorizationStrategiesForCRUD = new List(); diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs index 7ed13a4ed..cbc5da11b 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs @@ -64,7 +64,8 @@ public class Validator : AbstractValidator public Validator(IGetAllClaimSetsQuery getAllClaimSetsQuery, IGetResourceClaimsAsFlatListQuery getResourceClaimsAsFlatListQuery, IGetAllAuthorizationStrategiesQuery getAllAuthorizationStrategiesQuery, - IGetAllActionsQuery getAllActionsQuery) + IGetAllActionsQuery getAllActionsQuery, + IMapper mapper) { _getAllClaimSetsQuery = getAllClaimSetsQuery; @@ -92,7 +93,7 @@ public Validator(IGetAllClaimSetsQuery getAllClaimSetsQuery, foreach (var resourceClaim in claimSet.ResourceClaims) { resourceClaimValidator.Validate(resourceClaims, actions, authStrategyNames, - resourceClaim, claimSet.ResourceClaims, context, claimSet.Name); + resourceClaim, mapper.Map>(claimSet.ResourceClaims) , context, claimSet.Name); } } }); diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ResourceClaimValidator.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ResourceClaimValidator.cs index d9c3bfb5b..44043658e 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ResourceClaimValidator.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ResourceClaimValidator.cs @@ -17,7 +17,7 @@ public ResourceClaimValidator() } public void Validate(Lookup dbResourceClaims, List dbActions, - List dbAuthStrategies, ClaimSetResourceClaimModel resourceClaim, List existingResourceClaims, + List dbAuthStrategies, ClaimSetResourceClaimModel resourceClaim, List existingResourceClaims, ValidationContext context, string? claimSetName) { context.MessageFormatter.AppendArgument("ClaimSetName", claimSetName); @@ -55,7 +55,7 @@ private static void ValidateIfExist(ValidationContext context, string prop } } - private static void ValidateDuplicateResourceClaim(ClaimSetResourceClaimModel resourceClaim, List existingResourceClaims, ValidationContext context, string propertyName) + private static void ValidateDuplicateResourceClaim(ClaimSetResourceClaimModel resourceClaim, List existingResourceClaims, ValidationContext context, string propertyName) { if (existingResourceClaims.Count(x => x.Name == resourceClaim.Name) > 1) { diff --git a/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs b/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs index eb4b72e07..713c401c5 100644 --- a/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs +++ b/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs @@ -77,6 +77,13 @@ public AdminApiMappingProfile() .ForMember(dst => dst.DefaultAuthorizationStrategiesForCRUD, opt => opt.MapFrom(src => src.DefaultAuthStrategiesForCRUD)) .ForMember(dst => dst.Children, opt => opt.MapFrom(src => src.Children)); + CreateMap() + .ForMember(dst => dst.Name, opt => opt.MapFrom(src => src.Name)) + .ForMember(dst => dst.Actions, opt => opt.MapFrom(src => src.Actions)) + .ForMember(dst => dst.AuthorizationStrategyOverridesForCRUD, opt => opt.MapFrom(src => src.AuthorizationStrategyOverridesForCRUD)) + .ForMember(dst => dst.DefaultAuthorizationStrategiesForCRUD, opt => opt.MapFrom(src => src.DefaultAuthorizationStrategiesForCRUD)) + .ForMember(dst => dst.Children, opt => opt.MapFrom(src => src.Children)); + CreateMap() .ForMember(dst => dst.ClaimSetId, opt => opt.MapFrom(src => src.ClaimSetId)) .ForMember(dst => dst.ResourceClaim, opt => opt.MapFrom()); From cc47a849cbb7daf03b74ef48c081b89a720573db Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Thu, 21 Mar 2024 16:53:07 -0600 Subject: [PATCH 2/7] reference problem --- .../EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index fb87eb7e4..3575c568e 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -55,7 +55,7 @@ public ClaimSetResourceClaimModel() } -public class ChildrenClaimSetResource +public class ChildrenClaimSetResource: ClaimSetResourceClaimModel { [SwaggerSchema(ReadOnly = true)] public int Id { get; set; } From 5f4652ddb670a56d98da2620a4c74442d249be63 Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Fri, 22 Mar 2024 11:48:49 -0600 Subject: [PATCH 3/7] Testing E2E changes --- .../Features/ClaimSets/ClaimSetModel.cs | 19 ++----------------- .../Features/ClaimSets/ImportClaimSet.cs | 2 +- .../AutoMapper/AdminApiMappingProfile.cs | 2 +- 3 files changed, 4 insertions(+), 19 deletions(-) diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index 3575c568e..3078ea55b 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -57,27 +57,12 @@ public ClaimSetResourceClaimModel() public class ChildrenClaimSetResource: ClaimSetResourceClaimModel { - [SwaggerSchema(ReadOnly = true)] - public int Id { get; set; } - public string? Name { get; set; } - public List? Actions { get; set; } - - [JsonPropertyName("_defaultAuthorizationStrategiesForCRUD")] - [SwaggerSchema(ReadOnly = true)] - public List DefaultAuthorizationStrategiesForCRUD { get; set; } - - public List AuthorizationStrategyOverridesForCRUD { get; set; } - [SwaggerSchema(Description = "Children are collection of ResourceClaim")] - public List Children { get; set; } + public List Children { get; set; } public ChildrenClaimSetResource() { - Children = new List(); - DefaultAuthorizationStrategiesForCRUD = new List(); - AuthorizationStrategyOverridesForCRUD = new List(); - Actions = new List(); - } + Children = new List(); } } [SwaggerSchema(Title = "ResourceClaimModel")] public class ResourceClaimModel diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs index cbc5da11b..684d93bca 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ImportClaimSet.cs @@ -93,7 +93,7 @@ public Validator(IGetAllClaimSetsQuery getAllClaimSetsQuery, foreach (var resourceClaim in claimSet.ResourceClaims) { resourceClaimValidator.Validate(resourceClaims, actions, authStrategyNames, - resourceClaim, mapper.Map>(claimSet.ResourceClaims) , context, claimSet.Name); + resourceClaim, mapper.Map>(claimSet.ResourceClaims), context, claimSet.Name); } } }); diff --git a/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs b/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs index 713c401c5..b3fe43a78 100644 --- a/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs +++ b/Application/EdFi.Ods.AdminApi/Infrastructure/AutoMapper/AdminApiMappingProfile.cs @@ -77,7 +77,7 @@ public AdminApiMappingProfile() .ForMember(dst => dst.DefaultAuthorizationStrategiesForCRUD, opt => opt.MapFrom(src => src.DefaultAuthStrategiesForCRUD)) .ForMember(dst => dst.Children, opt => opt.MapFrom(src => src.Children)); - CreateMap() + CreateMap() .ForMember(dst => dst.Name, opt => opt.MapFrom(src => src.Name)) .ForMember(dst => dst.Actions, opt => opt.MapFrom(src => src.Actions)) .ForMember(dst => dst.AuthorizationStrategyOverridesForCRUD, opt => opt.MapFrom(src => src.AuthorizationStrategyOverridesForCRUD)) From e3974804bc342f9d5b40cfd57b1113e6cd215de9 Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Fri, 22 Mar 2024 13:50:16 -0600 Subject: [PATCH 4/7] refactoring --- .../EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index 3078ea55b..485e6cacc 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -59,10 +59,6 @@ public class ChildrenClaimSetResource: ClaimSetResourceClaimModel { [SwaggerSchema(Description = "Children are collection of ResourceClaim")] public List Children { get; set; } - - public ChildrenClaimSetResource() - { - Children = new List(); } } [SwaggerSchema(Title = "ResourceClaimModel")] public class ResourceClaimModel From 507d586eca1054c79303bd9a32a47bd46f62acfc Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Tue, 26 Mar 2024 15:49:20 -0600 Subject: [PATCH 5/7] adding new --- .../EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index 485e6cacc..8f169eef2 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -58,7 +58,7 @@ public ClaimSetResourceClaimModel() public class ChildrenClaimSetResource: ClaimSetResourceClaimModel { [SwaggerSchema(Description = "Children are collection of ResourceClaim")] - public List Children { get; set; } + public new List Children { get; set; } } [SwaggerSchema(Title = "ResourceClaimModel")] public class ResourceClaimModel From d03837bdcb4ca71ddb89a5eadbde58957662619b Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Tue, 26 Mar 2024 16:16:34 -0600 Subject: [PATCH 6/7] ctor --- .../EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index 8f169eef2..7044bc8f2 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -59,6 +59,11 @@ public class ChildrenClaimSetResource: ClaimSetResourceClaimModel { [SwaggerSchema(Description = "Children are collection of ResourceClaim")] public new List Children { get; set; } + + public ChildrenClaimSetResource() + { + Children = new List(); + } } [SwaggerSchema(Title = "ResourceClaimModel")] public class ResourceClaimModel From d34aa0874ab940d609ac5d5d386180c6658660f0 Mon Sep 17 00:00:00 2001 From: Johnny Brenes Date: Tue, 26 Mar 2024 16:47:35 -0600 Subject: [PATCH 7/7] github alerts --- .../EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs | 2 +- .../Infrastructure/Helpers/HealthCheckServiceExtensions.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs index 7044bc8f2..8328d83a3 100644 --- a/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs +++ b/Application/EdFi.Ods.AdminApi/Features/ClaimSets/ClaimSetModel.cs @@ -58,7 +58,7 @@ public ClaimSetResourceClaimModel() public class ChildrenClaimSetResource: ClaimSetResourceClaimModel { [SwaggerSchema(Description = "Children are collection of ResourceClaim")] - public new List Children { get; set; } + public new List Children { get; set; } public ChildrenClaimSetResource() { diff --git a/Application/EdFi.Ods.AdminApi/Infrastructure/Helpers/HealthCheckServiceExtensions.cs b/Application/EdFi.Ods.AdminApi/Infrastructure/Helpers/HealthCheckServiceExtensions.cs index 60c9d545b..86e71765e 100644 --- a/Application/EdFi.Ods.AdminApi/Infrastructure/Helpers/HealthCheckServiceExtensions.cs +++ b/Application/EdFi.Ods.AdminApi/Infrastructure/Helpers/HealthCheckServiceExtensions.cs @@ -25,7 +25,7 @@ public static IServiceCollection AddHealthCheck(this IServiceCollection services else { connectionStrings = new() { - { "SingleTenant", configuration.GetConnectionString(dbName) }}; + { "SingleTenant", configuration.GetConnectionString(dbName) ?? string.Empty }}; } if (!string.IsNullOrEmpty(databaseEngine))