Skip to content

Commit dbbdd75

Browse files
committed
chore: Add the security schema for the controller into its own file
1 parent 9972d9d commit dbbdd75

2 files changed

Lines changed: 114 additions & 10 deletions

File tree

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

Lines changed: 86 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
**/
1717

1818
use App\Http\Exceptions\HTTP403ForbiddenException;
19+
use App\Models\Foundation\Main\IGroup;
1920
use App\Models\Foundation\Summit\Repositories\ISummitScheduleConfigRepository;
2021
use App\ModelSerializers\SerializerUtils;
22+
use App\Security\SummitScopes;
2123
use App\Services\Model\ISummitScheduleSettingsService;
2224
use Illuminate\Http\Response;
2325
use Illuminate\Support\Facades\Log;
@@ -201,7 +203,17 @@ public function getChildSerializer():string{
201203
summary: "Get all schedule settings",
202204
operationId: "getAllSummitScheduleSettings",
203205
tags: ['Summit Schedule Settings'],
204-
security: [['summit_oauth2' => []]],
206+
security: [['summit_schedule_settings_oauth2' => [
207+
SummitScopes::ReadSummitData,
208+
SummitScopes::ReadAllSummitData,
209+
]]],
210+
x: [
211+
'required-groups' => [
212+
IGroup::SuperAdmins,
213+
IGroup::Administrators,
214+
IGroup::SummitAdministrators,
215+
]
216+
],
205217
parameters: [
206218
new OA\Parameter(
207219
name: 'id',
@@ -277,7 +289,17 @@ public function getAllBySummit($summit_id)
277289
summary: "Get schedule setting",
278290
operationId: "getSummitScheduleSetting",
279291
tags: ['Summit Schedule Settings'],
280-
security: [['summit_oauth2' => []]],
292+
security: [['summit_schedule_settings_oauth2' => [
293+
SummitScopes::ReadSummitData,
294+
SummitScopes::ReadAllSummitData,
295+
]]],
296+
x: [
297+
'required-groups' => [
298+
IGroup::SuperAdmins,
299+
IGroup::Administrators,
300+
IGroup::SummitAdministrators,
301+
]
302+
],
281303
parameters: [
282304
new OA\Parameter(
283305
name: 'id',
@@ -331,7 +353,16 @@ public function get($summit_id, $config_id)
331353
summary: "Create schedule setting",
332354
operationId: "createSummitScheduleSetting",
333355
tags: ['Summit Schedule Settings'],
334-
security: [['summit_oauth2' => []]],
356+
security: [['summit_schedule_settings_oauth2' => [
357+
SummitScopes::WriteSummitData,
358+
]]],
359+
x: [
360+
'required-groups' => [
361+
IGroup::SuperAdmins,
362+
IGroup::Administrators,
363+
IGroup::SummitAdministrators,
364+
]
365+
],
335366
parameters: [
336367
new OA\Parameter(
337368
name: 'id',
@@ -370,7 +401,16 @@ public function add($summit_id)
370401
summary: "Update schedule setting",
371402
operationId: "updateSummitScheduleSetting",
372403
tags: ['Summit Schedule Settings'],
373-
security: [['summit_oauth2' => []]],
404+
security: [['summit_schedule_settings_oauth2' => [
405+
SummitScopes::WriteSummitData,
406+
]]],
407+
x: [
408+
'required-groups' => [
409+
IGroup::SuperAdmins,
410+
IGroup::Administrators,
411+
IGroup::SummitAdministrators,
412+
]
413+
],
374414
parameters: [
375415
new OA\Parameter(
376416
name: 'id',
@@ -416,7 +456,16 @@ public function update($summit_id, $config_id)
416456
summary: "Delete schedule setting",
417457
operationId: "deleteSummitScheduleSetting",
418458
tags: ['Summit Schedule Settings'],
419-
security: [['summit_oauth2' => []]],
459+
security: [['summit_schedule_settings_oauth2' => [
460+
SummitScopes::WriteSummitData,
461+
]]],
462+
x: [
463+
'required-groups' => [
464+
IGroup::SuperAdmins,
465+
IGroup::Administrators,
466+
IGroup::SummitAdministrators,
467+
]
468+
],
420469
parameters: [
421470
new OA\Parameter(
422471
name: 'id',
@@ -452,7 +501,7 @@ public function delete($summit_id, $config_id)
452501
summary: "Get schedule settings metadata",
453502
operationId: "getSummitScheduleSettingsMetadata",
454503
tags: ['Summit Schedule Settings'],
455-
security: [['summit_oauth2' => []]],
504+
security: [['summit_schedule_settings_oauth2' => []]],
456505
parameters: [
457506
new OA\Parameter(
458507
name: 'id',
@@ -480,7 +529,16 @@ public function getMetadata($summit_id){
480529
summary: "Add schedule setting filter",
481530
operationId: "addSummitScheduleSettingFilter",
482531
tags: ['Summit Schedule Settings'],
483-
security: [['summit_oauth2' => []]],
532+
security: [['summit_schedule_settings_oauth2' => [
533+
SummitScopes::WriteSummitData,
534+
]]],
535+
x: [
536+
'required-groups' => [
537+
IGroup::SuperAdmins,
538+
IGroup::Administrators,
539+
IGroup::SummitAdministrators,
540+
]
541+
],
484542
parameters: [
485543
new OA\Parameter(
486544
name: 'id',
@@ -551,7 +609,16 @@ function ($payload, $summit, $id){
551609
summary: "Update schedule setting filter",
552610
operationId: "updateSummitScheduleSettingFilter",
553611
tags: ['Summit Schedule Settings'],
554-
security: [['summit_oauth2' => []]],
612+
security: [['summit_schedule_settings_oauth2' => [
613+
SummitScopes::WriteSummitData,
614+
]]],
615+
x: [
616+
'required-groups' => [
617+
IGroup::SuperAdmins,
618+
IGroup::Administrators,
619+
IGroup::SummitAdministrators,
620+
]
621+
],
555622
parameters: [
556623
new OA\Parameter(
557624
name: 'id',
@@ -631,7 +698,16 @@ function($filter_id, $payload, $summit, $config_id){
631698
summary: "Seed default schedule settings",
632699
operationId: "seedDefaultSummitScheduleSettings",
633700
tags: ['Summit Schedule Settings'],
634-
security: [['summit_oauth2' => []]],
701+
security: [['summit_schedule_settings_oauth2' => [
702+
SummitScopes::WriteSummitData,
703+
]]],
704+
x: [
705+
'required-groups' => [
706+
IGroup::SuperAdmins,
707+
IGroup::Administrators,
708+
IGroup::SummitAdministrators,
709+
]
710+
],
635711
parameters: [
636712
new OA\Parameter(
637713
name: 'id',
@@ -698,4 +774,4 @@ public function seedDefaults($summit_id){
698774
return $this->error500($ex);
699775
}
700776
}
701-
}
777+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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: 'summit_schedule_settings_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::ReadSummitData => 'Read Summit Data',
19+
SummitScopes::ReadAllSummitData => 'Read All Summit Data',
20+
SummitScopes::WriteSummitData => 'Write Summit Data',
21+
],
22+
),
23+
],
24+
)
25+
]
26+
class SummitScheduleSettingsAuthSchema
27+
{
28+
}

0 commit comments

Comments
 (0)