From ead072cdc1d57c46b18239a1ef493745a038fa0b Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Tue, 14 Oct 2025 16:47:09 -0300 Subject: [PATCH 1/4] feat: Extend Swagger Coverage for controller `OAuth2SummitTrackChairScoreTypesApiController` --- ...ummitTrackChairScoreTypesApiController.php | 344 ++++++++++++++++-- app/Swagger/SummitPresentationSchemas.php | 64 ++++ 2 files changed, 372 insertions(+), 36 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php index 5e7e99086..0ba6a77d2 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php @@ -1,4 +1,7 @@ -repository; } - /** - * @param $summit_id - * @param $selection_plan_id - * @param $type_id Track Chair Rating Type Id - * @return \Illuminate\Http\JsonResponse|mixed - */ + #[OA\Get( + path: "/api/v1/summits/{id}/selection-plans/{selection_plan_id}/track-chair-rating-types/{type_id}/score-types", + description: "Get all track chair score types for a rating type", + summary: "Get track chair score types", + operationId: "getTrackChairScoreTypes", + tags: ['Track Chair Score Types'], + security: [['summit_oauth2' => []]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'selection_plan_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The selection plan id' + ), + new OA\Parameter( + name: 'type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The rating type id' + ), + new OA\Parameter( + name: 'page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', default: 1), + description: 'Page number' + ), + new OA\Parameter( + name: 'per_page', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer', default: 10), + description: 'Items per page' + ), + new OA\Parameter( + name: 'filter', + in: 'query', + required: false, + explode: false, + schema: new OA\Schema(type: 'string'), + description: 'Filter operators: type_id==, name@@/=@/==' + ), + new OA\Parameter( + name: 'order', + in: 'query', + required: false, + explode: false, + schema: new OA\Schema(type: 'string'), + description: 'Order by fields: id, score, name' + ), + new OA\Parameter( + name: 'expand', + in: 'query', + required: false, + explode: false, + schema: new OA\Schema(type: 'string'), + description: 'Relations to expand: type' + ), + new OA\Parameter( + name: 'relations', + in: 'query', + required: false, + explode: false, + schema: new OA\Schema(type: 'string'), + description: 'Relations to include: type' + ) + ], + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PaginatedPresentationTrackChairScoreTypesResponse") + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function getTrackChairScoreTypes($summit_id, $selection_plan_id, $type_id) { $summit = SummitFinderStrategyFactory::build($this->summit_repository, $this->resource_server_context)->find(intval($summit_id)); @@ -139,13 +225,71 @@ function () { ); } - /** - * @param $summit_id - * @param $selection_plan_id - * @param $type_id Track Chair Rating Type Id - * @param $score_type_id - * @return \Illuminate\Http\JsonResponse|mixed - */ + #[OA\Get( + path: "/api/v1/summits/{id}/selection-plans/{selection_plan_id}/track-chair-rating-types/{type_id}/score-types/{score_type_id}", + description: "Get a specific track chair score type", + summary: "Get track chair score type", + operationId: "getTrackChairScoreType", + tags: ['Track Chair Score Types'], + security: [['summit_oauth2' => []]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'selection_plan_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The selection plan id' + ), + new OA\Parameter( + name: 'type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The rating type id' + ), + new OA\Parameter( + name: 'score_type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The score type id' + ), + new OA\Parameter( + name: 'expand', + in: 'query', + required: false, + explode: false, + schema: new OA\Schema(type: 'string'), + description: 'Relations to expand: type' + ), + new OA\Parameter( + name: 'relations', + in: 'query', + required: false, + explode: false, + schema: new OA\Schema(type: 'string'), + description: 'Relations to include: type' + ) + ], + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PresentationTrackChairScoreType") + ), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function getTrackChairScoreType($summit_id, $selection_plan_id, $type_id, $score_type_id) { return $this->processRequest(function () use ($summit_id, $selection_plan_id, $type_id, $score_type_id) { @@ -171,12 +315,54 @@ public function getTrackChairScoreType($summit_id, $selection_plan_id, $type_id, }); } - /** - * @param $summit_id - * @param $selection_plan_id - * @param $type_id Track Chair Rating Type Id - * @return \Illuminate\Http\JsonResponse|mixed - */ + #[OA\Post( + path: "/api/v1/summits/{id}/selection-plans/{selection_plan_id}/track-chair-rating-types/{type_id}/score-types", + description: "Create a new track chair score type", + summary: "Create track chair score type", + operationId: "addTrackChairScoreType", + tags: ['Track Chair Score Types'], + security: [['summit_oauth2' => []]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'selection_plan_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The selection plan id' + ), + new OA\Parameter( + name: 'type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The rating type id' + ) + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/PresentationTrackChairScoreTypeCreateRequest") + ), + responses: [ + new OA\Response( + response: 201, + description: "Created", + content: new OA\JsonContent(ref: "#/components/schemas/PresentationTrackChairScoreType") + ), + new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function addTrackChairScoreType($summit_id, $selection_plan_id, $type_id) { return $this->processRequest(function () use ($summit_id, $selection_plan_id, $type_id) { @@ -200,13 +386,61 @@ public function addTrackChairScoreType($summit_id, $selection_plan_id, $type_id) }); } - /** - * @param $summit_id - * @param $selection_plan_id - * @param $type_id Track Chair Rating Type Id - * @param $score_type_id - * @return \Illuminate\Http\JsonResponse|mixed - */ + #[OA\Put( + path: "/api/v1/summits/{id}/selection-plans/{selection_plan_id}/track-chair-rating-types/{type_id}/score-types/{score_type_id}", + description: "Update an existing track chair score type", + summary: "Update track chair score type", + operationId: "updateTrackChairScoreType", + tags: ['Track Chair Score Types'], + security: [['summit_oauth2' => []]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'selection_plan_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The selection plan id' + ), + new OA\Parameter( + name: 'type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The rating type id' + ), + new OA\Parameter( + name: 'score_type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The score type id' + ) + ], + requestBody: new OA\RequestBody( + required: true, + content: new OA\JsonContent(ref: "#/components/schemas/PresentationTrackChairScoreTypeUpdateRequest") + ), + responses: [ + new OA\Response( + response: 200, + description: "OK", + content: new OA\JsonContent(ref: "#/components/schemas/PresentationTrackChairScoreType") + ), + new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function updateTrackChairScoreType($summit_id, $selection_plan_id, $type_id, $score_type_id) { return $this->processRequest(function () use ($summit_id, $selection_plan_id, $type_id, $score_type_id) { @@ -230,13 +464,51 @@ public function updateTrackChairScoreType($summit_id, $selection_plan_id, $type_ }); } - /** - * @param $summit_id - * @param $selection_plan_id - * @param $type_id Track Chair Rating Type Id - * @param $score_type_id - * @return \Illuminate\Http\JsonResponse|mixed - */ + #[OA\Delete( + path: "/api/v1/summits/{id}/selection-plans/{selection_plan_id}/track-chair-rating-types/{type_id}/score-types/{score_type_id}", + description: "Delete a track chair score type", + summary: "Delete track chair score type", + operationId: "deleteTrackChairScoreType", + tags: ['Track Chair Score Types'], + security: [['summit_oauth2' => []]], + parameters: [ + new OA\Parameter( + name: 'id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The summit id' + ), + new OA\Parameter( + name: 'selection_plan_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The selection plan id' + ), + new OA\Parameter( + name: 'type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The rating type id' + ), + new OA\Parameter( + name: 'score_type_id', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer'), + description: 'The score type id' + ) + ], + responses: [ + new OA\Response(response: 204, description: 'No Content'), + new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), + new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") + ] + )] public function deleteTrackChairScoreType($summit_id, $selection_plan_id, $type_id, $score_type_id) { return $this->processRequest(function () use ($summit_id, $selection_plan_id, $type_id, $score_type_id) { @@ -251,4 +523,4 @@ public function deleteTrackChairScoreType($summit_id, $selection_plan_id, $type_ return $this->deleted(); }); } -} \ No newline at end of file +} diff --git a/app/Swagger/SummitPresentationSchemas.php b/app/Swagger/SummitPresentationSchemas.php index 8f8a3cf2c..54f150301 100644 --- a/app/Swagger/SummitPresentationSchemas.php +++ b/app/Swagger/SummitPresentationSchemas.php @@ -81,3 +81,67 @@ class PresentationTrackChairRatingTypeCreateRequestSchema {} class PresentationTrackChairRatingTypeUpdateRequestSchema {} // + + +// Track Chair Score Types + +#[OA\Schema( + schema: "PresentationTrackChairScoreType", + description: "Track chair score type", + type: "object", + properties: [ + new OA\Property(property: "id", type: "integer", example: 1), + new OA\Property(property: "created", type: "integer", description: "Unix timestamp", example: 1640995200), + new OA\Property(property: "last_edited", type: "integer", description: "Unix timestamp", example: 1640995200), + new OA\Property(property: "score", type: "integer", example: 5), + new OA\Property(property: "name", type: "string", example: "Excellent"), + new OA\Property(property: "description", type: "string", example: "This presentation is excellent"), + new OA\Property(property: "type_id", type: "integer", example: 10), + new OA\Property(property: "type", type: "PresentationTrackChairRatingType"), + ], +)] +class PresentationTrackChairScoreType {} + +#[OA\Schema( + schema: "PaginatedPresentationTrackChairScoreTypesResponse", + description: "Paginated list of track chair score types", + allOf: [ + new OA\Schema(ref: "#/components/schemas/PaginateDataSchemaResponse"), + new OA\Schema( + properties: [ + new OA\Property( + property: "data", + type: "array", + items: new OA\Items(ref: "#/components/schemas/PresentationTrackChairScoreType") + ) + ] + ) + ] +)] +class PaginatedPresentationTrackChairScoreTypesResponse {} + +#[OA\Schema( + schema: "PresentationTrackChairScoreTypeCreateRequest", + description: "Request to create a track chair score type", + required: ["name", "description"], + type: "object", + properties: [ + new OA\Property(property: "name", type: "string", example: "Excellent"), + new OA\Property(property: "description", type: "string", example: "This presentation is excellent"), + ] +)] +class PresentationTrackChairScoreTypeCreateRequest {} + +#[OA\Schema( + schema: "PresentationTrackChairScoreTypeUpdateRequest", + description: "Request to update a track chair score type", + type: "object", + properties: [ + new OA\Property(property: "score", type: "integer", nullable: true, example: 5), + new OA\Property(property: "name", type: "string", nullable: true, example: "Excellent"), + new OA\Property(property: "description", type: "string", nullable: true, example: "This presentation is excellent"), + ] +)] +class PresentationTrackChairScoreTypeUpdateRequest {} + +// End Track Chair Score Types From 2723ad4fab0f5cfc3992396a01fa180175cf8974 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 26 Nov 2025 17:36:52 +0000 Subject: [PATCH 2/4] chore: Add the correct security and x attributes and create security schema --- ...ummitTrackChairScoreTypesApiController.php | 62 ++++++++++++++++--- app/Swagger/Security/TrackChairAuthSchema.php | 24 +++++++ 2 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 app/Swagger/Security/TrackChairAuthSchema.php diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php index 0ba6a77d2..d72cae8c4 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php @@ -19,6 +19,8 @@ use App\Models\Foundation\Summit\Repositories\IPresentationTrackChairScoreTypeRepository; use App\Models\Foundation\Summit\Repositories\ISelectionPlanRepository; use App\ModelSerializers\SerializerUtils; +use App\Models\Foundation\Main\IGroup; +use App\Security\SummitScopes; use App\Services\Model\ITrackChairRankingService; use Illuminate\Http\Response; use models\oauth2\IResourceServerContext; @@ -100,7 +102,15 @@ protected function getRepository(): IBaseRepository summary: "Get track chair score types", operationId: "getTrackChairScoreTypes", tags: ['Track Chair Score Types'], - security: [['summit_oauth2' => []]], + security: [['summit_track_chair_oauth2' => [SummitScopes::ReadSummitData]]], + x: [ + 'authz_groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::TrackChairs, + IGroup::TrackChairsAdmins + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -178,7 +188,7 @@ protected function getRepository(): IBaseRepository ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -231,7 +241,15 @@ function () { summary: "Get track chair score type", operationId: "getTrackChairScoreType", tags: ['Track Chair Score Types'], - security: [['summit_oauth2' => []]], + security: [['summit_track_chair_oauth2' => [SummitScopes::ReadSummitData]]], + x: [ + 'authz_groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::TrackChairs, + IGroup::TrackChairsAdmins + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -286,7 +304,7 @@ function () { ), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] @@ -321,7 +339,15 @@ public function getTrackChairScoreType($summit_id, $selection_plan_id, $type_id, summary: "Create track chair score type", operationId: "addTrackChairScoreType", tags: ['Track Chair Score Types'], - security: [['summit_oauth2' => []]], + security: [['summit_track_chair_oauth2' => [SummitScopes::WriteSummitData]]], + x: [ + 'authz_groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::TrackChairs, + IGroup::TrackChairsAdmins + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -358,7 +384,7 @@ public function getTrackChairScoreType($summit_id, $selection_plan_id, $type_id, new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] @@ -392,7 +418,15 @@ public function addTrackChairScoreType($summit_id, $selection_plan_id, $type_id) summary: "Update track chair score type", operationId: "updateTrackChairScoreType", tags: ['Track Chair Score Types'], - security: [['summit_oauth2' => []]], + security: [['summit_track_chair_oauth2' => [SummitScopes::WriteSummitData]]], + x: [ + 'authz_groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::TrackChairs, + IGroup::TrackChairsAdmins + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -436,7 +470,7 @@ public function addTrackChairScoreType($summit_id, $selection_plan_id, $type_id) new OA\Response(response: Response::HTTP_BAD_REQUEST, description: "Bad Request"), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_PRECONDITION_FAILED, description: "Validation Error"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] @@ -470,7 +504,15 @@ public function updateTrackChairScoreType($summit_id, $selection_plan_id, $type_ summary: "Delete track chair score type", operationId: "deleteTrackChairScoreType", tags: ['Track Chair Score Types'], - security: [['summit_oauth2' => []]], + security: [['summit_track_chair_oauth2' => [SummitScopes::WriteSummitData]]], + x: [ + 'authz_groups' => [ + IGroup::SuperAdmins, + IGroup::Administrators, + IGroup::TrackChairs, + IGroup::TrackChairsAdmins + ] + ], parameters: [ new OA\Parameter( name: 'id', @@ -505,7 +547,7 @@ public function updateTrackChairScoreType($summit_id, $selection_plan_id, $type_ new OA\Response(response: 204, description: 'No Content'), new OA\Response(response: Response::HTTP_UNAUTHORIZED, description: "Unauthorized"), new OA\Response(response: Response::HTTP_FORBIDDEN, description: "Forbidden"), - new OA\Response(response: Response::HTTP_NOT_FOUND, description: "not found"), + new OA\Response(response: Response::HTTP_NOT_FOUND, description: "Not Found"), new OA\Response(response: Response::HTTP_INTERNAL_SERVER_ERROR, description: "Server Error") ] )] diff --git a/app/Swagger/Security/TrackChairAuthSchema.php b/app/Swagger/Security/TrackChairAuthSchema.php new file mode 100644 index 000000000..327b4b23d --- /dev/null +++ b/app/Swagger/Security/TrackChairAuthSchema.php @@ -0,0 +1,24 @@ + 'Read Summit Data', + SummitScopes::WriteSummitData => 'Write Summit Data', + ], + ), + ], + ) +] +class TrackChairAuthSchema{} From f7ed73d8e6fd1b9970aa5751bfd40ab3a0a7a649 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Wed, 3 Dec 2025 19:53:57 +0000 Subject: [PATCH 3/4] feat: Add changes requested --- .../Summit/OAuth2SummitTrackChairScoreTypesApiController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php index d72cae8c4..a5c09ccd6 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php @@ -104,7 +104,7 @@ protected function getRepository(): IBaseRepository tags: ['Track Chair Score Types'], security: [['summit_track_chair_oauth2' => [SummitScopes::ReadSummitData]]], x: [ - 'authz_groups' => [ + 'required-groups' => [ IGroup::SuperAdmins, IGroup::Administrators, IGroup::TrackChairs, From 2385dd6c439f47fd5489a9bb2a2753e4280cac83 Mon Sep 17 00:00:00 2001 From: Matias Perrone Date: Fri, 5 Dec 2025 15:01:45 +0000 Subject: [PATCH 4/4] chore: include PR requested changes --- .../OAuth2SummitTrackChairScoreTypesApiController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php index a5c09ccd6..08cd23aeb 100644 --- a/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php +++ b/app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitTrackChairScoreTypesApiController.php @@ -243,7 +243,7 @@ function () { tags: ['Track Chair Score Types'], security: [['summit_track_chair_oauth2' => [SummitScopes::ReadSummitData]]], x: [ - 'authz_groups' => [ + 'required-groups' => [ IGroup::SuperAdmins, IGroup::Administrators, IGroup::TrackChairs, @@ -341,7 +341,7 @@ public function getTrackChairScoreType($summit_id, $selection_plan_id, $type_id, tags: ['Track Chair Score Types'], security: [['summit_track_chair_oauth2' => [SummitScopes::WriteSummitData]]], x: [ - 'authz_groups' => [ + 'required-groups' => [ IGroup::SuperAdmins, IGroup::Administrators, IGroup::TrackChairs, @@ -420,7 +420,7 @@ public function addTrackChairScoreType($summit_id, $selection_plan_id, $type_id) tags: ['Track Chair Score Types'], security: [['summit_track_chair_oauth2' => [SummitScopes::WriteSummitData]]], x: [ - 'authz_groups' => [ + 'required-groups' => [ IGroup::SuperAdmins, IGroup::Administrators, IGroup::TrackChairs, @@ -506,7 +506,7 @@ public function updateTrackChairScoreType($summit_id, $selection_plan_id, $type_ tags: ['Track Chair Score Types'], security: [['summit_track_chair_oauth2' => [SummitScopes::WriteSummitData]]], x: [ - 'authz_groups' => [ + 'required-groups' => [ IGroup::SuperAdmins, IGroup::Administrators, IGroup::TrackChairs,