Skip to content

Add RequireRoles extension for RouteHandlerBuilder#78

Merged
IeuanWalker merged 1 commit intomasterfrom
RequireRoles
Jan 27, 2026
Merged

Add RequireRoles extension for RouteHandlerBuilder#78
IeuanWalker merged 1 commit intomasterfrom
RequireRoles

Conversation

@IeuanWalker
Copy link
Owner

Introduced RouteHandlerBuilderExtensions with a RequireRoles method, enabling role-based authorization on minimal API endpoints.

Introduced RouteHandlerBuilderExtensions with a RequireRoles method,
enabling role-based authorization on minimal API endpoints. Also
suppressed namespace-folder structure warnings with pragma directives.
@IeuanWalker IeuanWalker marked this pull request as ready for review January 27, 2026 09:45
@IeuanWalker IeuanWalker merged commit 9465665 into master Jan 27, 2026
1 check passed
@IeuanWalker IeuanWalker deleted the RequireRoles branch January 27, 2026 09:45
@github-actions
Copy link

Summary

Summary
Generated on: 1/27/2026 - 9:46:57 AM
Coverage date: 1/27/2026 - 9:46:49 AM - 1/27/2026 - 9:46:51 AM
Parser: MultiReport (4x Cobertura)
Assemblies: 3
Classes: 84
Files: 71
Line coverage: 90.1% (5172 of 5740)
Covered lines: 5172
Uncovered lines: 568
Coverable lines: 5740
Total lines: 9755
Branch coverage: 83% (2450 of 2949)
Covered branches: 2450
Total branches: 2949
Method coverage: Feature is only available for sponsors
Tag: 392_21392267588

Coverage

ExampleApi - 97%
Name Line Branch
ExampleApi 97% 78.5%
ExampleApi.Data.InMemoryTodoStore 100% 100%
ExampleApi.EndpointExtensions 95.6%
ExampleApi.Endpoints.Enum.PostFromBody.RequestModelValidator 100%
ExampleApi.Endpoints.FileHandling.PostListOfFiles.PostFileHandlingListOfFil
esEndpoint
100%
ExampleApi.Endpoints.FileHandling.PostMultipart.PostFileHandlingMultipartEn
dpoint
100% 66.6%
ExampleApi.Endpoints.FileHandling.PostSingleFile.PostFileHandlingSingleFile
Endpoint
100%
ExampleApi.Endpoints.Todos.Delete.DeleteTodoEndpoint 100%
ExampleApi.Endpoints.Todos.GetAll.GetAllTodosEndpoint 100%
ExampleApi.Endpoints.Todos.GetById.GetTodoByIdEndpoint 100% 100%
ExampleApi.Endpoints.Todos.GetExport.GetExportEndpoint 100% 83.3%
ExampleApi.Endpoints.Todos.Patch.PatchTodoEndpoint 100% 100%
ExampleApi.Endpoints.Todos.Post.PostTodoEndpoint 100%
ExampleApi.Endpoints.Todos.Post.RequestModelValidator 100%
ExampleApi.Endpoints.Todos.Post.ResponseModel 100%
ExampleApi.Endpoints.Todos.Put.PutTodoEndpoint 100% 100%
ExampleApi.Endpoints.TypeExamples.TypeExamplesEndpointGroup 100%
ExampleApi.Endpoints.Validation.GetDataAnnotationsFromQuery.GetFluentValida
tionFromQuery
0%
ExampleApi.Endpoints.Validation.GetFluentValidationFromQuery.GetFluentValid
ationFromQuery
0%
ExampleApi.Endpoints.Validation.GetFluentValidationFromQuery.RequestModelVa
lidator
98% 0%
ExampleApi.Endpoints.Validation.GetValidationErrors.GetValidationErrorsEndp
oint
100%
ExampleApi.Endpoints.Validation.PostDataAnnotationsFromBody.PostDataValidat
ionEndpoint
0%
ExampleApi.Endpoints.Validation.PostFluentValidation.NestedObjectModelValid
ator
100% 50%
ExampleApi.Endpoints.Validation.PostFluentValidation.PostFluentValidationEn
dpoint
0%
ExampleApi.Endpoints.Validation.PostFluentValidation.RequestModelValidator 100% 100%
ExampleApi.Endpoints.Validation.PostFluentValidationFromFrom.PostFluentVali
dationFromFromEndpoint
0%
ExampleApi.Endpoints.WeatherForecast.Get.V1.GetWeatherForecastEndpoint 100%
ExampleApi.Endpoints.WeatherForecast.Get.V2.GetWeatherForecastEndpoint 100%
Program 100%
IeuanWalker.MinimalApi.Endpoints - 87.1%
Name Line Branch
IeuanWalker.MinimalApi.Endpoints 87.1% 82.1%
IeuanWalker.MinimalApi.Endpoints.Extensions.StringExtensions 100% 100%
IeuanWalker.MinimalApi.Endpoints.Filters.FluentValidationFilter`1 100% 100%
IeuanWalker.MinimalApi.Endpoints.FluentValidationEnumExtensions 100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.AuthorizationP
oliciesAndRequirementsOperationTransformer
100% 92.3%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Core.EndpointRequestTypeMapper
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Core.OpenApiPathMatcher
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Core.OpenApiSchemaHelper
97% 93%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Core.SchemaConstants
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Core.SchemaTypeResolver
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.EnumSchemaTransformer
100% 90%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.NullableSchemaReorderTransformer
100% 93.2%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.TypeDocumentTransformer
95% 90.7%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.UnusedComponentsCleanupTransformer
91.7% 83.6%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.AlterOperation
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.CustomRule`1
100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.DescriptionRule
100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.EmailRule
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.EnumRule
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.PatternRule
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.PropertyValidationBuilder`2
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.RangeRule`1
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.RemoveAllOperation
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.RemoveOperation
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.RequiredRule
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.StringLengthRule
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.UrlRule
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.ValidationConfiguration`1
100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.ValidationConfigurationBuilder`1
97.4% 85.2%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.ValidationMetadata`1
100% 50%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.PropertyEnhanc
er.Validation.ValidationRule
100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.RequestPropert
yEnhancer.ValidationDocumentTransformer
74.5% 69.4%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.SecurityScheme
Transformer
100% 100%
IeuanWalker.MinimalApi.Endpoints.OpenApiDocumentTransformers.SecurityScheme
TransformerOptions
100%
IeuanWalker.MinimalApi.Endpoints.OpenApiExtensions 93.1% 100%
IeuanWalker.MinimalApi.Endpoints.RouteHandlerBuilderExtensions 0%
IeuanWalker.MinimalApi.Endpoints.ValidationErrors`1 98.2% 95.8%
IeuanWalkerMinimalApiEndpoints.EndpointExtensions 0%
IeuanWalker.MinimalApi.Endpoints.Generator - 95.9%
Name Line Branch
IeuanWalker.MinimalApi.Endpoints.Generator 95.9% 88.8%
IeuanWalker.MinimalApi.Endpoints.Generator.AbstractValidatorInfo 100%
IeuanWalker.MinimalApi.Endpoints.Generator.Block 100% 100%
IeuanWalker.MinimalApi.Endpoints.Generator.CachableLocation 100% 83.3%
IeuanWalker.MinimalApi.Endpoints.Generator.DiagnosticInfo 100%
IeuanWalker.MinimalApi.Endpoints.Generator.EndpointGenerator 98.2% 86.7%
IeuanWalker.MinimalApi.Endpoints.Generator.EndpointGroupInfo 100%
IeuanWalker.MinimalApi.Endpoints.Generator.EndpointInfo 100%
IeuanWalker.MinimalApi.Endpoints.Generator.Extensions.SourceGeneratorExtens
ions
100% 92.3%
IeuanWalker.MinimalApi.Endpoints.Generator.Extensions.StringExtensions 100% 100%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.EndpointGeneratorHelpers 95.8% 95.6%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.HttpVerbRouteHelpers 93.6% 85.7%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.MapGroupHelpers 88.4% 78.8%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.RequestBindingTypeHelper
s
95.8% 92.6%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.ValidationHelpers 94.8% 90.9%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.WithNameHelpers 100% 91.6%
IeuanWalker.MinimalApi.Endpoints.Generator.Helpers.WithTagsHelpers 94.3% 91.9%
IeuanWalker.MinimalApi.Endpoints.Generator.IndentedTextBuilder 100%
IeuanWalker.MinimalApi.Endpoints.Generator.TypeInfo 100%
IeuanWalker.MinimalApi.Endpoints.Generator.ValidatorInfo 100%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant