Skip to content

Commit 5843018

Browse files
committed
chore: Add the correct security and x attributes and create security schema, fix path routes and change schema to be defined as requested
1 parent 4968dc1 commit 5843018

2 files changed

Lines changed: 119 additions & 14 deletions

File tree

app/Http/Controllers/Apis/Protected/Summit/OAuth2SummitProposedScheduleApiController.php

Lines changed: 93 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
* limitations under the License.
1313
**/
1414

15+
use App\Models\Foundation\Main\IGroup;
16+
use App\Security\SummitScopes;
1517
use Illuminate\Http\Response;
1618
use OpenApi\Attributes as OA;
1719
use App\Facades\ResourceServerContext;
@@ -92,9 +94,23 @@ protected function getRepository(): IBaseRepository
9294
*/
9395
#[OA\Get(
9496
path: "/api/v1/summits/{id}/proposed-schedules/{source}/presentations",
97+
operationId: 'getProposedScheduleEvents',
98+
description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::TrackChairs . ", " . IGroup::TrackChairsAdmins,
9599
summary: "Get proposed schedule events for a specific source",
96-
security: [["Bearer" => []]],
97-
tags: ["summit-proposed-schedule"],
100+
tags: ["Summit Proposed Schedule"],
101+
x: [
102+
'required-groups' => [
103+
IGroup::SuperAdmins,
104+
IGroup::Administrators,
105+
IGroup::SummitAdministrators,
106+
IGroup::TrackChairs,
107+
IGroup::TrackChairsAdmins
108+
]
109+
],
110+
security: [['summit_proposed_schedule_oauth2' => [
111+
SummitScopes::ReadAllSummitData,
112+
SummitScopes::ReadSummitData,
113+
]]],
98114
parameters: [
99115
new OA\Parameter(
100116
name: "id",
@@ -213,9 +229,22 @@ function () {
213229
*/
214230
#[OA\Put(
215231
path: "/api/v1/summits/{id}/proposed-schedules/{source}/presentations/{presentation_id}/propose",
232+
operationId: 'publishProposedSchedulePresentation',
233+
description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::TrackChairs . ", " . IGroup::TrackChairsAdmins,
216234
summary: "Publish a presentation to the proposed schedule",
217-
security: [["Bearer" => []]],
218-
tags: ["summit-proposed-schedule"],
235+
tags: ["Summit Proposed Schedule"],
236+
x: [
237+
'required-groups' => [
238+
IGroup::SuperAdmins,
239+
IGroup::Administrators,
240+
IGroup::SummitAdministrators,
241+
IGroup::TrackChairs,
242+
IGroup::TrackChairsAdmins
243+
]
244+
],
245+
security: [['summit_proposed_schedule_oauth2' => [
246+
SummitScopes::WriteSummitData,
247+
]]],
219248
parameters: [
220249
new OA\Parameter(
221250
name: "id",
@@ -289,9 +318,22 @@ public function publish($summit_id, $source, $presentation_id)
289318
*/
290319
#[OA\Delete(
291320
path: "/api/v1/summits/{id}/proposed-schedules/{source}/presentations/{presentation_id}/propose",
321+
operationId: 'unpublishProposedSchedulePresentation',
322+
description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::TrackChairs . ", " . IGroup::TrackChairsAdmins,
292323
summary: "Unpublish a presentation from the proposed schedule",
293-
security: [["Bearer" => []]],
294-
tags: ["summit-proposed-schedule"],
324+
tags: ["Summit Proposed Schedule"],
325+
x: [
326+
'required-groups' => [
327+
IGroup::SuperAdmins,
328+
IGroup::Administrators,
329+
IGroup::SummitAdministrators,
330+
IGroup::TrackChairs,
331+
IGroup::TrackChairsAdmins
332+
]
333+
],
334+
security: [['summit_proposed_schedule_oauth2' => [
335+
SummitScopes::WriteSummitData,
336+
]]],
295337
parameters: [
296338
new OA\Parameter(
297339
name: "id",
@@ -346,9 +388,22 @@ public function unpublish($summit_id, $source, $presentation_id)
346388
*/
347389
#[OA\Put(
348390
path: "/api/v1/summits/{id}/proposed-schedules/{source}/presentations/all/publish",
391+
operationId: 'publishAllProposedSchedulePresentations',
392+
description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators . ", " . IGroup::TrackChairs . ", " . IGroup::TrackChairsAdmins,
349393
summary: "Publish all presentations to the proposed schedule with optional filters",
350-
security: [["Bearer" => []]],
351-
tags: ["summit-proposed-schedule"],
394+
tags: ["Summit Proposed Schedule"],
395+
x: [
396+
'required-groups' => [
397+
IGroup::SuperAdmins,
398+
IGroup::Administrators,
399+
IGroup::SummitAdministrators,
400+
IGroup::TrackChairs,
401+
IGroup::TrackChairsAdmins
402+
]
403+
],
404+
security: [['summit_proposed_schedule_oauth2' => [
405+
SummitScopes::WriteSummitData,
406+
]]],
352407
parameters: [
353408
new OA\Parameter(
354409
name: "id",
@@ -440,9 +495,19 @@ public function publishAll($summit_id, $source)
440495
*/
441496
#[OA\Post(
442497
path: "/api/v1/summits/{id}/proposed-schedules/{source}/tracks/{track_id}/lock",
498+
operationId: 'sendProposedScheduleTrackToReview',
499+
description: "required-groups " . IGroup::TrackChairs . ", " . IGroup::TrackChairsAdmins,
443500
summary: "Send a track schedule for review (lock the track)",
444-
security: [["Bearer" => []]],
445-
tags: ["summit-proposed-schedule"],
501+
tags: ["Summit Proposed Schedule"],
502+
x: [
503+
'required-groups' => [
504+
IGroup::TrackChairs,
505+
IGroup::TrackChairsAdmins
506+
]
507+
],
508+
security: [['summit_proposed_schedule_oauth2' => [
509+
SummitScopes::WriteSummitData,
510+
]]],
446511
parameters: [
447512
new OA\Parameter(
448513
name: "id",
@@ -517,9 +582,20 @@ public function send2Review($summit_id, $source, $track_id)
517582
*/
518583
#[OA\Delete(
519584
path: "/api/v1/summits/{id}/proposed-schedules/{source}/tracks/{track_id}/lock",
585+
operationId: 'removeProposedScheduleTrackReview',
586+
description: "required-groups " . IGroup::SuperAdmins . ", " . IGroup::Administrators . ", " . IGroup::SummitAdministrators,
520587
summary: "Remove review lock from a track schedule (unlock the track)",
521-
security: [["Bearer" => []]],
522-
tags: ["summit-proposed-schedule"],
588+
tags: ["Summit Proposed Schedule"],
589+
x: [
590+
'required-groups' => [
591+
IGroup::SuperAdmins,
592+
IGroup::Administrators,
593+
IGroup::SummitAdministrators
594+
]
595+
],
596+
security: [['summit_proposed_schedule_oauth2' => [
597+
SummitScopes::WriteSummitData,
598+
]]],
523599
parameters: [
524600
new OA\Parameter(
525601
name: "id",
@@ -582,9 +658,12 @@ public function removeReview($summit_id, $source, $track_id)
582658
*/
583659
#[OA\Get(
584660
path: "/api/v1/summits/{id}/proposed-schedules/{source}/locks",
661+
operationId: 'getProposedScheduleReviewSubmissions',
585662
summary: "Get all proposed schedule review submissions (locks) for a source",
586-
security: [["Bearer" => []]],
587-
tags: ["summit-proposed-schedule"],
663+
tags: ["Summit Proposed Schedule"],
664+
security: [['summit_proposed_schedule_oauth2' => [
665+
SummitScopes::ReadSummitData,
666+
]]],
588667
parameters: [
589668
new OA\Parameter(
590669
name: "id",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace App\Swagger\schemas;
4+
5+
use App\Security\SummitScopes;
6+
use OpenApi\Attributes as OA;
7+
8+
#[
9+
OA\SecurityScheme(
10+
type: 'oauth2',
11+
securityScheme: 'summit_proposed_schedule_oauth2',
12+
flows: [
13+
new OA\Flow(
14+
authorizationUrl: L5_SWAGGER_CONST_AUTH_URL,
15+
tokenUrl: L5_SWAGGER_CONST_TOKEN_URL,
16+
flow: 'authorizationCode',
17+
scopes: [
18+
SummitScopes::ReadAllSummitData => 'Read All Summit Data',
19+
SummitScopes::ReadSummitData => 'Read Summit Data',
20+
SummitScopes::WriteSummitData => 'Write Summit Data',
21+
],
22+
),
23+
],
24+
)
25+
]
26+
class SummitProposedScheduleSecuritySchemas{}

0 commit comments

Comments
 (0)