Skip to content

Commit 2c513e0

Browse files
committed
chore: Add the security schema for the controller to its own file
1 parent c3926f1 commit 2c513e0

2 files changed

Lines changed: 98 additions & 6 deletions

File tree

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

Lines changed: 72 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
**/
1414

1515
use App\Http\Utils\EpochCellFormatter;
16+
use App\Models\Foundation\Main\IGroup;
1617
use App\Models\Foundation\Summit\Repositories\IPresentationActionTypeRepository;
18+
use App\Security\SummitScopes;
1719
use App\Services\Model\ISummitPresentationActionTypeService;
1820
use Illuminate\Http\Response;
1921
use Illuminate\Support\Facades\Input;
@@ -138,7 +140,17 @@ protected function updateChild(Summit $summit, int $child_id, array $payload): I
138140
#[OA\Post(
139141
path: '/api/v1/summits/{id}/presentation-action-types',
140142
summary: 'Create a new presentation action type',
141-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
143+
x: [
144+
'required-groups' => [
145+
IGroup::SuperAdmins,
146+
IGroup::Administrators,
147+
IGroup::SummitAdministrators,
148+
IGroup::TrackChairsAdmins,
149+
]
150+
],
151+
security: [['presentation_action_types_oauth2' => [
152+
SummitScopes::WriteSummitData,
153+
]]],
142154
tags: ['Summits', 'Presentation Action Types'],
143155
parameters: [
144156
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -173,7 +185,18 @@ public function add($summit_id){
173185
#[OA\Get(
174186
path: '/api/v1/summits/{id}/presentation-action-types/{action_id}',
175187
summary: 'Get a presentation action type by ID',
176-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
188+
x: [
189+
'required-groups' => [
190+
IGroup::SuperAdmins,
191+
IGroup::Administrators,
192+
IGroup::SummitAdministrators,
193+
IGroup::TrackChairsAdmins,
194+
]
195+
],
196+
security: [['presentation_action_types_oauth2' => [
197+
SummitScopes::ReadAllSummitData,
198+
SummitScopes::ReadSummitData,
199+
]]],
177200
tags: ['Summits', 'Presentation Action Types'],
178201
parameters: [
179202
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -204,7 +227,17 @@ public function get($summit_id, $action_id){
204227
#[OA\Put(
205228
path: '/api/v1/summits/{id}/presentation-action-types/{action_id}',
206229
summary: 'Update a presentation action type',
207-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
230+
x: [
231+
'required-groups' => [
232+
IGroup::SuperAdmins,
233+
IGroup::Administrators,
234+
IGroup::SummitAdministrators,
235+
IGroup::TrackChairsAdmins,
236+
]
237+
],
238+
security: [['presentation_action_types_oauth2' => [
239+
SummitScopes::WriteSummitData,
240+
]]],
208241
tags: ['Summits', 'Presentation Action Types'],
209242
parameters: [
210243
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -240,7 +273,17 @@ public function update($summit_id, $action_id){
240273
#[OA\Delete(
241274
path: '/api/v1/summits/{id}/presentation-action-types/{action_id}',
242275
summary: 'Delete a presentation action type',
243-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
276+
x: [
277+
'required-groups' => [
278+
IGroup::SuperAdmins,
279+
IGroup::Administrators,
280+
IGroup::SummitAdministrators,
281+
IGroup::TrackChairsAdmins,
282+
]
283+
],
284+
security: [['presentation_action_types_oauth2' => [
285+
SummitScopes::WriteSummitData,
286+
]]],
244287
tags: ['Summits', 'Presentation Action Types'],
245288
parameters: [
246289
new OA\Parameter(name: 'id', in: 'path', required: true, description: 'Summit ID', schema: new OA\Schema(type: 'integer')),
@@ -266,7 +309,19 @@ public function delete($summit_id, $action_id){
266309
#[OA\Get(
267310
path: '/api/v1/summits/{id}/presentation-action-types',
268311
summary: 'Get all presentation action types for a summit',
269-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
312+
x: [
313+
'required-groups' => [
314+
IGroup::SuperAdmins,
315+
IGroup::Administrators,
316+
IGroup::SummitAdministrators,
317+
IGroup::TrackChairsAdmins,
318+
IGroup::TrackChairs,
319+
]
320+
],
321+
security: [['presentation_action_types_oauth2' => [
322+
SummitScopes::ReadAllSummitData,
323+
SummitScopes::ReadSummitData,
324+
]]],
270325
tags: ['Summits', 'Presentation Action Types'],
271326
parameters: [
272327
new OA\Parameter(ref: '#/components/parameters/page'),
@@ -337,7 +392,18 @@ function () {
337392
#[OA\Get(
338393
path: '/api/v1/summits/{id}/presentation-action-types/csv',
339394
summary: 'Get all presentation action types for a summit in CSV format',
340-
security: [['OAuth2' => ['openid', 'profile', 'email']]],
395+
x: [
396+
'required-groups' => [
397+
IGroup::SuperAdmins,
398+
IGroup::Administrators,
399+
IGroup::SummitAdministrators,
400+
IGroup::TrackChairsAdmins,
401+
]
402+
],
403+
security: [['presentation_action_types_oauth2' => [
404+
SummitScopes::ReadAllSummitData,
405+
SummitScopes::ReadSummitData,
406+
]]],
341407
tags: ['Summits', 'Presentation Action Types'],
342408
parameters: [
343409
new OA\Parameter(ref: '#/components/parameters/page'),
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\Security;
4+
5+
use App\Security\SummitScopes;
6+
use OpenApi\Attributes as OA;
7+
8+
#[
9+
OA\SecurityScheme(
10+
type: 'oauth2',
11+
securityScheme: 'presentation_action_types_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 PresentationActionTypesAuthSchema{}

0 commit comments

Comments
 (0)