From 364fe65e0d9c209dc76c7f2a3a1e04550b1c3b8e Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Tue, 15 Sep 2026 08:37:08 +0200 Subject: [PATCH] Moved .RequireAuthentication() to endpoints, removed it from EndpointGroup --- .../Endpoints/Communications/GetApplicantInviteEndpoint.cs | 1 + .../Endpoints/Communications/GetApplicantInvitesEndpoint.cs | 1 + .../Endpoints/Communications/GetInvitesEndpoint.cs | 1 + .../Endpoints/Communications/SendInviteEndpoint.cs | 1 + .../Endpoints/Evidence/CreateEvidenceEndpoint.cs | 4 ++-- .../Endpoints/Evidence/CreateIndicatorEndpoint.cs | 1 + .../Endpoints/Evidence/CreateMilestoneEndpoint.cs | 1 + .../Endpoints/Evidence/GetEvidenceEndpoint.cs | 1 + .../Endpoints/Evidence/GetEvidenceFilesEndpoint.cs | 1 + .../Endpoints/Evidence/GetEvidenceUrlEndpoint.cs | 1 + .../Endpoints/Evidence/GetIndicatorEndpoint.cs | 1 + .../Endpoints/Evidence/GetIndicatorsEndpoint.cs | 1 + .../Endpoints/Evidence/GetMilestoneEvidenceEndpoint.cs | 1 + .../Endpoints/Evidence/GetProjectEvidenceEndpoint.cs | 1 + .../Endpoints/Evidence/RecordIndicatorAmountEndpoint.cs | 1 + .../Endpoints/Evidence/UpdateEvidenceEndpoint.cs | 2 ++ .../Endpoints/Execution/ApproveDisbursementEndpoint.cs | 1 + .../Endpoints/Execution/CreateDisbursementEndpoint.cs | 1 + .../Endpoints/Execution/CreateRiskEndpoint.cs | 1 + .../Endpoints/Execution/GetDisbursementEndpoint.cs | 1 + .../Endpoints/Execution/GetDisbursementsEndpoint.cs | 1 + .../Endpoints/Execution/GetRiskEndpoint.cs | 1 + .../Endpoints/Execution/GetRisksEndpoint.cs | 1 + .../Endpoints/Execution/UpdateDisbursementEndpoint.cs | 1 + .../Endpoints/Execution/UpdateRiskEndpoint.cs | 1 + .../Endpoints/Governance/CreateOrganisationEndpoint.cs | 1 + .../Endpoints/Governance/CreatePortfolioEndpoint.cs | 1 + .../Endpoints/Governance/DashboardEndpoint.cs | 1 + .../Endpoints/Governance/GetInstrumentsEndpoint.cs | 1 + .../Endpoints/Governance/GetOrganisationEndpoint.cs | 1 + .../Endpoints/Governance/GetOrganisationsEndpoint.cs | 1 + .../Endpoints/Governance/GetPortfolioEndpoint.cs | 1 + .../Endpoints/Governance/GetPortfolioProgrammesEndpoint.cs | 1 + .../Endpoints/Governance/GetPortfoliosEndpoint.cs | 1 + .../Endpoints/Governance/GetProgrammesEndpoint.cs | 1 + .../Endpoints/Governance/UpdateOrganisationEndpoint.cs | 1 + .../Endpoints/Governance/UpdatePortfolioEndpoint.cs | 1 + .../Endpoints/Grants/CreateAwardEndpoint.cs | 1 + .../Endpoints/Grants/CreateBudgetEndpoint.cs | 1 + .../Endpoints/Grants/CreateContractEndpoint.cs | 1 + .../Endpoints/Grants/ExecuteContractEndpoint.cs | 1 + PostFundManagement.Api/Endpoints/Grants/GetAwardEndpoint.cs | 1 + .../Endpoints/Grants/GetAwardsEndpoint.cs | 1 + .../Endpoints/Grants/GetBudgetEndpoint.cs | 1 + .../Endpoints/Grants/GetBudgetsEndpoint.cs | 1 + .../Endpoints/Grants/GetContractEndpoint.cs | 1 + .../Endpoints/Grants/GetContractUrlEndpoint.cs | 1 + .../Endpoints/Grants/GetContractsEndpoint.cs | 1 + .../Endpoints/Grants/UpdateContractEndpoint.cs | 1 + .../Endpoints/Grants/UploadContractEndpoint.cs | 2 ++ .../Endpoints/Projects/CreateActivityEndpoint.cs | 1 + .../Endpoints/Projects/CreateProgrammeEndpoint.cs | 1 + .../Endpoints/Projects/CreateProjectEndpoint.cs | 1 + .../Endpoints/Projects/GetActivitiesEndpoint.cs | 1 + .../Endpoints/Projects/GetActivityEndpoint.cs | 1 + .../Endpoints/Projects/GetMilestoneEndpoint.cs | 1 + .../Endpoints/Projects/GetMilestonesEndpoint.cs | 1 + .../Endpoints/Projects/GetProgrammeEndpoint.cs | 1 + .../Endpoints/Projects/GetProgrammeProjectsEndpoint.cs | 1 + .../Endpoints/Projects/GetProgrammesEndpoint.cs | 1 + .../Endpoints/Projects/GetProjectEndpoint.cs | 1 + .../Endpoints/Projects/GetProjectIndicatorsEndpoint.cs | 1 + .../Endpoints/Projects/GetProjectMilestonesEndpoint.cs | 1 + .../Endpoints/Projects/GetProjectRisksEndpoint.cs | 1 + .../Endpoints/Projects/GetProjectsEndpoint.cs | 1 + .../Endpoints/Projects/UpdateMilestoneEndpoint.cs | 1 + .../Endpoints/Projects/UpdateProgrammeEndpoint.cs | 1 + .../Endpoints/Projects/UpdateProjectEndpoint.cs | 1 + .../Endpoints/Projects/UpdateProjectStatusEndpoint.cs | 1 + PostFundManagement.Api/Endpoints/Tools/EncodeIdEndpoint.cs | 1 + PostFundManagement.Api/Endpoints/Users/GetUserEndpoint.cs | 1 + PostFundManagement.Api/Endpoints/Users/GetUsersEndpoint.cs | 1 + PostFundManagement.Api/Endpoints/Users/SyncUserEndpoint.cs | 1 + .../Endpoints/Users/UpdateUserStatusEndpoint.cs | 1 + PostFundManagement.Api/Program.cs | 6 +++--- PostFundManagement.Application/Extensions/Security.cs | 3 ++- PostFundManagement.Domain/Extensions/Constants.cs | 4 ++++ 77 files changed, 86 insertions(+), 6 deletions(-) diff --git a/PostFundManagement.Api/Endpoints/Communications/GetApplicantInviteEndpoint.cs b/PostFundManagement.Api/Endpoints/Communications/GetApplicantInviteEndpoint.cs index 41111c3..6578e7c 100644 --- a/PostFundManagement.Api/Endpoints/Communications/GetApplicantInviteEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Communications/GetApplicantInviteEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetApplicantInviteEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Gets an applicant's invite") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetApplicantInviteEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Communications/GetApplicantInvitesEndpoint.cs b/PostFundManagement.Api/Endpoints/Communications/GetApplicantInvitesEndpoint.cs index 5c3c687..94782fa 100644 --- a/PostFundManagement.Api/Endpoints/Communications/GetApplicantInvitesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Communications/GetApplicantInvitesEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetApplicantInvitesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Gets an applicant's invite list") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetApplicantInvitesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Communications/GetInvitesEndpoint.cs b/PostFundManagement.Api/Endpoints/Communications/GetInvitesEndpoint.cs index 78b4090..879ba57 100644 --- a/PostFundManagement.Api/Endpoints/Communications/GetInvitesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Communications/GetInvitesEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetInvitesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of sent invitations") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetInvitesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Communications/SendInviteEndpoint.cs b/PostFundManagement.Api/Endpoints/Communications/SendInviteEndpoint.cs index 589581d..8f89bb9 100644 --- a/PostFundManagement.Api/Endpoints/Communications/SendInviteEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Communications/SendInviteEndpoint.cs @@ -24,6 +24,7 @@ public sealed class SendInviteEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Trigger an invite to an organization or candidate (specifying NotificationPlatform)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(SendInviteEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/CreateEvidenceEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/CreateEvidenceEndpoint.cs index 08683f5..b3fe459 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/CreateEvidenceEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/CreateEvidenceEndpoint.cs @@ -34,9 +34,9 @@ public class CreateEvidenceEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }; }) - .RequireAuthorization() - .DisableAntiforgery() .WithDescription("Upload supporting evidence file to S3 and register metadata (M14)") + .DisableAntiforgery() + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateEvidenceEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/CreateIndicatorEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/CreateIndicatorEndpoint.cs index 1e1ae98..febc0ba 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/CreateIndicatorEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/CreateIndicatorEndpoint.cs @@ -24,6 +24,7 @@ public class CreateIndicatorEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Define indicators and baselines/targets (M08)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateIndicatorEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/CreateMilestoneEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/CreateMilestoneEndpoint.cs index 209a1b6..7f40348 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/CreateMilestoneEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/CreateMilestoneEndpoint.cs @@ -24,6 +24,7 @@ public class CreateMilestoneEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Define contractual milestones (M07)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateMilestoneRequest).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceEndpoint.cs index 3268c7c..8cc45f0 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetEvidenceEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a specific evidence record and assiciated file URLs") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetEvidenceEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceFilesEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceFilesEndpoint.cs index f044cd8..821b7dc 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceFilesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceFilesEndpoint.cs @@ -21,6 +21,7 @@ public class GetEvidenceFilesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of all uploaded evidence files metadata") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetEvidenceFilesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceUrlEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceUrlEndpoint.cs index 4b5c73c..ba0d548 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceUrlEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetEvidenceUrlEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetEvidenceUrlEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Gets a secure download URL of the evidence file, URL expires (default: 15min)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetEvidenceUrlEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorEndpoint.cs index d495c8f..7f38255 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorEndpoint.cs @@ -24,6 +24,7 @@ public sealed class GetIndicatorEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a specific indicator.") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetIndicatorEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorsEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorsEndpoint.cs index e0a9bf4..cfcd9b1 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetIndicatorsEndpoint.cs @@ -22,6 +22,7 @@ public class GetIndicatorsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Get a list of indicators") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetIndicatorsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetMilestoneEvidenceEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetMilestoneEvidenceEndpoint.cs index cb9bc01..8dd325c 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetMilestoneEvidenceEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetMilestoneEvidenceEndpoint.cs @@ -22,6 +22,7 @@ public class GetMilestoneEvidenceEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of all uploaded evidence metadata for a specific mliestone") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetMilestoneEvidenceEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/GetProjectEvidenceEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/GetProjectEvidenceEndpoint.cs index aeaee08..e7b9970 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/GetProjectEvidenceEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/GetProjectEvidenceEndpoint.cs @@ -22,6 +22,7 @@ public class GetProjectEvidenceEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Get a list of all uploaded evidence metadata for a specific project") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProjectEvidenceEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/RecordIndicatorAmountEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/RecordIndicatorAmountEndpoint.cs index 6e4cc69..8ab6040 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/RecordIndicatorAmountEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/RecordIndicatorAmountEndpoint.cs @@ -23,6 +23,7 @@ public class RecordIndicatorAmountEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Record actual values for indicators (M08)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(RecordIndicatorAmountEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Evidence/UpdateEvidenceEndpoint.cs b/PostFundManagement.Api/Endpoints/Evidence/UpdateEvidenceEndpoint.cs index f798759..8f2ade3 100644 --- a/PostFundManagement.Api/Endpoints/Evidence/UpdateEvidenceEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Evidence/UpdateEvidenceEndpoint.cs @@ -24,6 +24,8 @@ public sealed class UpdateEvidenceEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Updates a specific evidence record metadata") + .RequireAuthorization(Constants.MainScope) + .DisableAntiforgery() .WithName(typeof(UpdateEvidenceEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/ApproveDisbursementEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/ApproveDisbursementEndpoint.cs index e0bcbc3..0cb1f0e 100644 --- a/PostFundManagement.Api/Endpoints/Execution/ApproveDisbursementEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/ApproveDisbursementEndpoint.cs @@ -23,6 +23,7 @@ public class ApproveDisbursementEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Approve disbursement and release payment (M06)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(ApproveDisbursementEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/CreateDisbursementEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/CreateDisbursementEndpoint.cs index 8b1aeaa..4d31ad0 100644 --- a/PostFundManagement.Api/Endpoints/Execution/CreateDisbursementEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/CreateDisbursementEndpoint.cs @@ -24,6 +24,7 @@ public class CreateDisbursementEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Create a new disbursement schedule (M06)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateDisbursementEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/CreateRiskEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/CreateRiskEndpoint.cs index 3b83375..f6bcfc2 100644 --- a/PostFundManagement.Api/Endpoints/Execution/CreateRiskEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/CreateRiskEndpoint.cs @@ -24,6 +24,7 @@ public class CreateRiskEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Add risk to risk register (M09)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateRiskEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/GetDisbursementEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/GetDisbursementEndpoint.cs index 5d07ac8..5f486ce 100644 --- a/PostFundManagement.Api/Endpoints/Execution/GetDisbursementEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/GetDisbursementEndpoint.cs @@ -24,6 +24,7 @@ public sealed class GetDisbursementEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a specific disbursement") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetDisbursementEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/GetDisbursementsEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/GetDisbursementsEndpoint.cs index fc1f804..55f5adb 100644 --- a/PostFundManagement.Api/Endpoints/Execution/GetDisbursementsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/GetDisbursementsEndpoint.cs @@ -22,6 +22,7 @@ public class GetDisbursementsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of disbursements") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetDisbursementsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/GetRiskEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/GetRiskEndpoint.cs index 941b33e..8939886 100644 --- a/PostFundManagement.Api/Endpoints/Execution/GetRiskEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/GetRiskEndpoint.cs @@ -24,6 +24,7 @@ public sealed class GetRiskEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a specific risk") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetRiskEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/GetRisksEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/GetRisksEndpoint.cs index e919d7f..360eb35 100644 --- a/PostFundManagement.Api/Endpoints/Execution/GetRisksEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/GetRisksEndpoint.cs @@ -21,6 +21,7 @@ public class GetRisksEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of all risks") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetRisksEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/UpdateDisbursementEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/UpdateDisbursementEndpoint.cs index 1fd1247..14bc36e 100644 --- a/PostFundManagement.Api/Endpoints/Execution/UpdateDisbursementEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/UpdateDisbursementEndpoint.cs @@ -23,6 +23,7 @@ public sealed class UpdateDisbursementEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update the details of a specific disbursement") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateDisbursementEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Execution/UpdateRiskEndpoint.cs b/PostFundManagement.Api/Endpoints/Execution/UpdateRiskEndpoint.cs index 4bb7c37..6d55a7f 100644 --- a/PostFundManagement.Api/Endpoints/Execution/UpdateRiskEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Execution/UpdateRiskEndpoint.cs @@ -23,6 +23,7 @@ public sealed class UpdateRiskEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update the details of a specific risk") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateRiskEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/CreateOrganisationEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/CreateOrganisationEndpoint.cs index 5eb565b..5f9c473 100644 --- a/PostFundManagement.Api/Endpoints/Governance/CreateOrganisationEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/CreateOrganisationEndpoint.cs @@ -23,6 +23,7 @@ public sealed class CreateOrganisationEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Create a new organization profile") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateOrganisationEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/CreatePortfolioEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/CreatePortfolioEndpoint.cs index de68ebc..1405690 100644 --- a/PostFundManagement.Api/Endpoints/Governance/CreatePortfolioEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/CreatePortfolioEndpoint.cs @@ -25,6 +25,7 @@ public sealed class CreatePortfolioEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Create a new organization portfolio") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreatePortfolioEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/DashboardEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/DashboardEndpoint.cs index ba40669..0cd7ffe 100644 --- a/PostFundManagement.Api/Endpoints/Governance/DashboardEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/DashboardEndpoint.cs @@ -21,6 +21,7 @@ public class DashboardEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get executive portfolio dashboard metrics and KPIs") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(DashboardEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetInstrumentsEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetInstrumentsEndpoint.cs index 4758ca6..fba8f5d 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetInstrumentsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetInstrumentsEndpoint.cs @@ -23,6 +23,7 @@ public class GetInstrumentsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Get all funding instruments") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetInstrumentsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetOrganisationEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetOrganisationEndpoint.cs index d6f0e98..aeebd0f 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetOrganisationEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetOrganisationEndpoint.cs @@ -24,6 +24,7 @@ public class GetOrganisationEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get organization profile by ID") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetOrganisationEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetOrganisationsEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetOrganisationsEndpoint.cs index 0ede350..a1eb72b 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetOrganisationsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetOrganisationsEndpoint.cs @@ -22,6 +22,7 @@ public class GetOrganisationsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a paginated directory of organizations") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetOrganisationsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetPortfolioEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetPortfolioEndpoint.cs index 48bcd3c..017cf17 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetPortfolioEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetPortfolioEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetPortfolioEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a specific portfolios") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetPortfolioEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetPortfolioProgrammesEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetPortfolioProgrammesEndpoint.cs index 2559c20..1f56ca6 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetPortfolioProgrammesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetPortfolioProgrammesEndpoint.cs @@ -24,6 +24,7 @@ public sealed class GetPortfolioProgrammesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a programme's portfolios") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetPortfolioProgrammesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetPortfoliosEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetPortfoliosEndpoint.cs index 1127ef3..18047dc 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetPortfoliosEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetPortfoliosEndpoint.cs @@ -23,6 +23,7 @@ public class GetPortfoliosEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get all portfolios") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetPortfoliosEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/GetProgrammesEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/GetProgrammesEndpoint.cs index b558bb4..83efaaa 100644 --- a/PostFundManagement.Api/Endpoints/Governance/GetProgrammesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/GetProgrammesEndpoint.cs @@ -23,6 +23,7 @@ public class GetProgrammesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get all programmes") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProgrammesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/UpdateOrganisationEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/UpdateOrganisationEndpoint.cs index 891ff07..6fa659a 100644 --- a/PostFundManagement.Api/Endpoints/Governance/UpdateOrganisationEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/UpdateOrganisationEndpoint.cs @@ -23,6 +23,7 @@ public sealed class UpdateOrganisationEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update an existing organization profile") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateOrganisationEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Governance/UpdatePortfolioEndpoint.cs b/PostFundManagement.Api/Endpoints/Governance/UpdatePortfolioEndpoint.cs index 71035f4..9a0d5c7 100644 --- a/PostFundManagement.Api/Endpoints/Governance/UpdatePortfolioEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Governance/UpdatePortfolioEndpoint.cs @@ -25,6 +25,7 @@ public sealed class UpdatePortfolioEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update an existing organization portfolio") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdatePortfolioEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/CreateAwardEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/CreateAwardEndpoint.cs index 6c2d4ab..a1383b3 100644 --- a/PostFundManagement.Api/Endpoints/Grants/CreateAwardEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/CreateAwardEndpoint.cs @@ -25,6 +25,7 @@ public class CreateAwardEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Register an approved funding award (M01)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateAwardEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/CreateBudgetEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/CreateBudgetEndpoint.cs index b81a6e3..70efa13 100644 --- a/PostFundManagement.Api/Endpoints/Grants/CreateBudgetEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/CreateBudgetEndpoint.cs @@ -25,6 +25,7 @@ public class CreateBudgetEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Create a new budget line (M05)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateBudgetEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/CreateContractEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/CreateContractEndpoint.cs index 8b54d64..0c77962 100644 --- a/PostFundManagement.Api/Endpoints/Grants/CreateContractEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/CreateContractEndpoint.cs @@ -24,6 +24,7 @@ public class CreateContractEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Create a contract record from an approved award (M02)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateContractEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/ExecuteContractEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/ExecuteContractEndpoint.cs index de8deaf..fa6ac70 100644 --- a/PostFundManagement.Api/Endpoints/Grants/ExecuteContractEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/ExecuteContractEndpoint.cs @@ -23,6 +23,7 @@ public class ExecuteContractEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Execute the contract and lock the contractual version") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(ExecuteContractEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetAwardEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetAwardEndpoint.cs index c7507a4..530053c 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetAwardEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetAwardEndpoint.cs @@ -24,6 +24,7 @@ public class GetAwardEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get award by ID") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetAwardEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetAwardsEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetAwardsEndpoint.cs index 9b73556..d35efd6 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetAwardsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetAwardsEndpoint.cs @@ -22,6 +22,7 @@ public class GetAwardsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of awards") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetAwardsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetBudgetEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetBudgetEndpoint.cs index 7a0ccc9..cfbcd28 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetBudgetEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetBudgetEndpoint.cs @@ -24,6 +24,7 @@ public class GetBudgetEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get budget by ID") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetBudgetEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetBudgetsEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetBudgetsEndpoint.cs index f883860..7109591 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetBudgetsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetBudgetsEndpoint.cs @@ -22,6 +22,7 @@ public class GetBudgetsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get all budgets") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetBudgetsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetContractEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetContractEndpoint.cs index 82f28a2..af71f64 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetContractEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetContractEndpoint.cs @@ -24,6 +24,7 @@ public class GetContractEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get contract by ID") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetContractEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetContractUrlEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetContractUrlEndpoint.cs index b2ab796..b814647 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetContractUrlEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetContractUrlEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetContractUrlEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Gets a secure download URL, has expiry period (default 15min)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetContractUrlEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/GetContractsEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/GetContractsEndpoint.cs index fdc65dc..eace687 100644 --- a/PostFundManagement.Api/Endpoints/Grants/GetContractsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/GetContractsEndpoint.cs @@ -22,6 +22,7 @@ public class GetContractsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get all contracts") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetContractsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/UpdateContractEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/UpdateContractEndpoint.cs index e483d3b..854a3ab 100644 --- a/PostFundManagement.Api/Endpoints/Grants/UpdateContractEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/UpdateContractEndpoint.cs @@ -25,6 +25,7 @@ public sealed class UpdateContractEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Updates a specific contract") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateContractEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Grants/UploadContractEndpoint.cs b/PostFundManagement.Api/Endpoints/Grants/UploadContractEndpoint.cs index d3028bf..854927b 100644 --- a/PostFundManagement.Api/Endpoints/Grants/UploadContractEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Grants/UploadContractEndpoint.cs @@ -33,6 +33,8 @@ public sealed class UploadContractEndpoint : IEndpoint }; }) .WithDescription("Uploads a contract file securely") + .RequireAuthorization(Constants.MainScope) + .DisableAntiforgery() .WithName(typeof(UploadContractEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/CreateActivityEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/CreateActivityEndpoint.cs index 0bca4db..7dd86b4 100644 --- a/PostFundManagement.Api/Endpoints/Projects/CreateActivityEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/CreateActivityEndpoint.cs @@ -23,6 +23,7 @@ public class CreateActivityEndpoint : IEndpoint var r when r.HasError() => Results.BadRequest(r.Errors.ToProblems()), var r => Results.InternalServerError(r.Errors.ToProblems()) }) + .RequireAuthorization(Constants.MainScope) .WithDescription("Add a new activity under project (M04)") .WithName(typeof(CreateActivityEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) diff --git a/PostFundManagement.Api/Endpoints/Projects/CreateProgrammeEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/CreateProgrammeEndpoint.cs index 7dec5c1..af829ec 100644 --- a/PostFundManagement.Api/Endpoints/Projects/CreateProgrammeEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/CreateProgrammeEndpoint.cs @@ -25,6 +25,7 @@ public sealed class CreateProgrammeEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Create programme") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateProgrammeEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/CreateProjectEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/CreateProjectEndpoint.cs index 01a7016..2fd5110 100644 --- a/PostFundManagement.Api/Endpoints/Projects/CreateProjectEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/CreateProjectEndpoint.cs @@ -25,6 +25,7 @@ public class CreateProjectEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Create a new project (M04)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(CreateProjectEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetActivitiesEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetActivitiesEndpoint.cs index 326f708..4568568 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetActivitiesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetActivitiesEndpoint.cs @@ -22,6 +22,7 @@ public class GetActivitiesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of activities for a project") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetActivitiesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetActivityEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetActivityEndpoint.cs index 8fad21c..653bde4 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetActivityEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetActivityEndpoint.cs @@ -23,6 +23,7 @@ public class GetActivityEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Gets a specific activity by it's id") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetActivityEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetMilestoneEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetMilestoneEndpoint.cs index 030b52a..245022e 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetMilestoneEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetMilestoneEndpoint.cs @@ -24,6 +24,7 @@ public class GetMilestoneEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Gets a specific milestone") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetMilestoneEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetMilestonesEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetMilestonesEndpoint.cs index 013f13e..4bea5ca 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetMilestonesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetMilestonesEndpoint.cs @@ -22,6 +22,7 @@ public class GetMilestonesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of all milestones") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetMilestonesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProgrammeEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProgrammeEndpoint.cs index bec2710..8cb798d 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProgrammeEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProgrammeEndpoint.cs @@ -24,6 +24,7 @@ public sealed class GetProgrammeEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get specific programme") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProgrammeEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProgrammeProjectsEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProgrammeProjectsEndpoint.cs index dd58556..b698c23 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProgrammeProjectsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProgrammeProjectsEndpoint.cs @@ -24,6 +24,7 @@ public sealed class GetProgrammeProjectsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()), }) .WithDescription("Get a list of all projects under a programme") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProgrammeProjectsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProgrammesEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProgrammesEndpoint.cs index 40ee97b..c33782b 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProgrammesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProgrammesEndpoint.cs @@ -22,6 +22,7 @@ public sealed class GetProgrammesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of all programmes") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProgrammesEndpoint).ToEndpointName("Projects")) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProjectEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProjectEndpoint.cs index 7feac9d..0dc641f 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProjectEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProjectEndpoint.cs @@ -24,6 +24,7 @@ public class GetProjectEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get project by ID") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProjectEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProjectIndicatorsEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProjectIndicatorsEndpoint.cs index 23536dd..cb992a1 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProjectIndicatorsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProjectIndicatorsEndpoint.cs @@ -23,6 +23,7 @@ public class GetProjectIndicatorsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get get a detailed list of project indicators") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProjectIndicatorsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProjectMilestonesEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProjectMilestonesEndpoint.cs index d9067a9..b5221d9 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProjectMilestonesEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProjectMilestonesEndpoint.cs @@ -23,6 +23,7 @@ public class GetProjectMilestonesEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of milestones for a project") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProjectMilestonesEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProjectRisksEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProjectRisksEndpoint.cs index ee0dac4..334a24e 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProjectRisksEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProjectRisksEndpoint.cs @@ -23,6 +23,7 @@ public class GetProjectRisksEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of risks for a project") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProjectRisksEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/GetProjectsEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/GetProjectsEndpoint.cs index 27aa19c..107a85c 100644 --- a/PostFundManagement.Api/Endpoints/Projects/GetProjectsEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/GetProjectsEndpoint.cs @@ -22,6 +22,7 @@ public class GetProjectsEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Get a list of projects") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetProjectsEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/UpdateMilestoneEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/UpdateMilestoneEndpoint.cs index 9d83e93..2cc6730 100644 --- a/PostFundManagement.Api/Endpoints/Projects/UpdateMilestoneEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/UpdateMilestoneEndpoint.cs @@ -21,6 +21,7 @@ public sealed class UpdateMilestoneEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update project milestone details") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateMilestoneEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/UpdateProgrammeEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/UpdateProgrammeEndpoint.cs index 3b99d81..7ae0cc9 100644 --- a/PostFundManagement.Api/Endpoints/Projects/UpdateProgrammeEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/UpdateProgrammeEndpoint.cs @@ -24,6 +24,7 @@ public sealed class UpdateProgrammeEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update existing programme") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateProgrammeEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/UpdateProjectEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/UpdateProjectEndpoint.cs index 49d5f29..29f2fdd 100644 --- a/PostFundManagement.Api/Endpoints/Projects/UpdateProjectEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/UpdateProjectEndpoint.cs @@ -23,6 +23,7 @@ public sealed class UpdateProjectEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update project details") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateProjectEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Projects/UpdateProjectStatusEndpoint.cs b/PostFundManagement.Api/Endpoints/Projects/UpdateProjectStatusEndpoint.cs index a731e62..fd8fe41 100644 --- a/PostFundManagement.Api/Endpoints/Projects/UpdateProjectStatusEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Projects/UpdateProjectStatusEndpoint.cs @@ -24,6 +24,7 @@ public class UpdateProjectStatusEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Update project status (M04)") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateProjectStatusEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Tools/EncodeIdEndpoint.cs b/PostFundManagement.Api/Endpoints/Tools/EncodeIdEndpoint.cs index f1b444d..5a80c05 100644 --- a/PostFundManagement.Api/Endpoints/Tools/EncodeIdEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Tools/EncodeIdEndpoint.cs @@ -22,6 +22,7 @@ public sealed class EncodeIdEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Hashes an int64 identifier") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(EncodeIdEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Users/GetUserEndpoint.cs b/PostFundManagement.Api/Endpoints/Users/GetUserEndpoint.cs index 406f419..a40122e 100644 --- a/PostFundManagement.Api/Endpoints/Users/GetUserEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Users/GetUserEndpoint.cs @@ -23,6 +23,7 @@ public sealed class GetUserEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Gets the metadata of a single user.") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetUserEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Users/GetUsersEndpoint.cs b/PostFundManagement.Api/Endpoints/Users/GetUsersEndpoint.cs index af35a2c..0ca58cc 100644 --- a/PostFundManagement.Api/Endpoints/Users/GetUsersEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Users/GetUsersEndpoint.cs @@ -23,6 +23,7 @@ public class GetUsersEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Paginated, searchable directory of system users. Supports filtering by ActivityStatus, searching by Email, and sorting") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(GetUsersEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Users/SyncUserEndpoint.cs b/PostFundManagement.Api/Endpoints/Users/SyncUserEndpoint.cs index 5938d3a..e24a377 100644 --- a/PostFundManagement.Api/Endpoints/Users/SyncUserEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Users/SyncUserEndpoint.cs @@ -30,6 +30,7 @@ public class SyncUserEndpoint : IEndpoint }; }) .WithDescription("Trigger integration and data synchronization in the background") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(SyncUserEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Endpoints/Users/UpdateUserStatusEndpoint.cs b/PostFundManagement.Api/Endpoints/Users/UpdateUserStatusEndpoint.cs index 3da2556..a1cdddd 100644 --- a/PostFundManagement.Api/Endpoints/Users/UpdateUserStatusEndpoint.cs +++ b/PostFundManagement.Api/Endpoints/Users/UpdateUserStatusEndpoint.cs @@ -23,6 +23,7 @@ public sealed class UpdateUserStatusEndpoint : IEndpoint var r => Results.InternalServerError(r.Errors.ToProblems()) }) .WithDescription("Changes the Activity status of the user in the system") + .RequireAuthorization(Constants.MainScope) .WithName(typeof(UpdateUserStatusEndpoint).ToEndpointName()) .MapToApiVersion(new ApiVersion(1)) .Produces(StatusCodes.Status200OK) diff --git a/PostFundManagement.Api/Program.cs b/PostFundManagement.Api/Program.cs index 44f1567..6bd5457 100644 --- a/PostFundManagement.Api/Program.cs +++ b/PostFundManagement.Api/Program.cs @@ -95,7 +95,7 @@ var allowedOrigins = builder.Configuration.GetSection("CorsOrigins").Get { - options.AddPolicy("AllowConfiguredOrigins", policy => + options.AddPolicy(CorsPolicy, policy => { policy.WithOrigins(allowedOrigins) .AllowAnyHeader() @@ -115,7 +115,7 @@ if (!scheduler!.IsStarted) app.UseHsts(); app.UseHttpsRedirection(); app.UseRouting(); -app.UseCors("AllowConfiguredOrigins"); +app.UseCors(CorsPolicy); app.UseOutputCache(); app.UseAuthentication(); @@ -130,7 +130,7 @@ var versionGroups = new Dictionary { { 1, app.MapGroup("v{version:apiVersion}").WithApiVersionSet(versionSet) - .RequireAuthorization("ApiScope").AddEndpointFilter() + .AddEndpointFilter() } }; diff --git a/PostFundManagement.Application/Extensions/Security.cs b/PostFundManagement.Application/Extensions/Security.cs index 7e2b157..fac002c 100644 --- a/PostFundManagement.Application/Extensions/Security.cs +++ b/PostFundManagement.Application/Extensions/Security.cs @@ -1,5 +1,6 @@ using PostFundManagement.Application.Services.Shared; using PostFundManagement.Domain.Security.Configuration; +using PostFundManagement.Domain.Extensions; using PostFundManagement.Domain.Security.Sdk; using PostFundManagement.Infrastructure.Database; @@ -150,7 +151,7 @@ public static class Security }); services.AddAuthorizationBuilder() - .AddPolicy("ApiScope", policy => + .AddPolicy(Constants.MainScope, policy => { policy.RequireAuthenticatedUser(); policy.RequireClaim("scope", authOptions.Audience!); diff --git a/PostFundManagement.Domain/Extensions/Constants.cs b/PostFundManagement.Domain/Extensions/Constants.cs index 337ef79..0c77cc1 100644 --- a/PostFundManagement.Domain/Extensions/Constants.cs +++ b/PostFundManagement.Domain/Extensions/Constants.cs @@ -2,6 +2,10 @@ namespace PostFundManagement.Domain.Extensions; public static class Constants { + public const string MainScope = "ApiScope"; + + public const string CorsPolicy = "AllowConfiguredOrigins"; + public const string CachePolicy = "DefaultCachePolicy"; public const string EmailtemKey = "UserEmail";