1515use App \Http \Utils \BooleanCellFormatter ;
1616use App \Http \Utils \EpochCellFormatter ;
1717use App \libs \Utils \Doctrine \ReplicaAwareTrait ;
18+ use App \Models \Foundation \Main \IGroup ;
1819use App \Models \Foundation \Summit \Registration \ISummitExternalRegistrationFeedType ;
1920use App \ModelSerializers \ISummitAttendeeTicketSerializerTypes ;
2021use App \ModelSerializers \SerializerUtils ;
2122use App \Rules \Boolean ;
23+ use App \Security \SummitScopes ;
2224use App \Services \Model \ISummitOrderService ;
2325use Illuminate \Http \Request as LaravelRequest ;
2426use Illuminate \Http \Response ;
@@ -110,7 +112,17 @@ public function __construct
110112 path: '/api/v1/summits/{summit_id}/tickets ' ,
111113 summary: 'Get all tickets for a summit ' ,
112114 description: 'Returns a paginated list of tickets for the specified summit with filtering and sorting capabilities ' ,
113- security: [['bearer ' => []]],
115+ security: [['summit_tickets_oauth2 ' => [
116+ SummitScopes::ReadAllSummitData,
117+ SummitScopes::ReadRegistrationOrders,
118+ ]]],
119+ x: ['required-groups ' => [
120+ IGroup::SuperAdmins,
121+ IGroup::Administrators,
122+ IGroup::SummitAdministrators,
123+ IGroup::SummitRegistrationAdmins,
124+ IGroup::BadgePrinters,
125+ ]],
114126 tags: ['tickets ' ],
115127 parameters: [
116128 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -289,7 +301,13 @@ function () {
289301 path: '/api/v1/summits/{summit_id}/tickets/external ' ,
290302 summary: 'Get external ticket data ' ,
291303 description: 'Returns ticket data from external registration feed by owner email ' ,
292- security: [['bearer ' => []]],
304+ security: [['summit_tickets_oauth2 ' => [
305+ SummitScopes::ReadAllSummitData,
306+ SummitScopes::ReadRegistrationOrders,
307+ ]]],
308+ x: ['required-groups ' => [
309+ IGroup::BadgePrinters,
310+ ]],
293311 tags: ['tickets ' ],
294312 parameters: [
295313 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -364,7 +382,16 @@ function () {
364382 path: '/api/v1/summits/{summit_id}/tickets/csv ' ,
365383 summary: 'Get all tickets for a summit ' ,
366384 description: 'Returns a paginated list of tickets for the specified summit with filtering and sorting capabilities ' ,
367- security: [['bearer ' => []]],
385+ security: [['summit_tickets_oauth2 ' => [
386+ SummitScopes::ReadAllSummitData,
387+ SummitScopes::ReadRegistrationOrders,
388+ ]]],
389+ x: ['required-groups ' => [
390+ IGroup::SuperAdmins,
391+ IGroup::Administrators,
392+ IGroup::SummitAdministrators,
393+ IGroup::SummitRegistrationAdmins,
394+ ]],
368395 tags: ['tickets ' ],
369396 parameters: [
370397 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -628,7 +655,16 @@ function($data, $serializerParams) use($questions){
628655 path: '/api/v1/summits/{summit_id}/tickets/ingest ' ,
629656 summary: 'Ingest external ticket data ' ,
630657 description: 'Triggers ingestion of ticket data from external registration feed ' ,
631- security: [['bearer ' => []]],
658+ security: [['summit_tickets_oauth2 ' => [
659+ SummitScopes::WriteSummitData,
660+ SummitScopes::WriteRegistrationData,
661+ ]]],
662+ x: ['required-groups ' => [
663+ IGroup::SuperAdmins,
664+ IGroup::Administrators,
665+ IGroup::SummitAdministrators,
666+ IGroup::SummitRegistrationAdmins,
667+ ]],
632668 tags: ['tickets ' ],
633669 parameters: [
634670 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -669,7 +705,16 @@ public function ingestExternalTicketData($summit_id)
669705 path: '/api/v1/summits/{summit_id}/tickets/import-template ' ,
670706 summary: 'Get ticket import template ' ,
671707 description: 'Returns a CSV template for importing ticket data ' ,
672- security: [['bearer ' => []]],
708+ security: [['summit_tickets_oauth2 ' => [
709+ SummitScopes::WriteSummitData,
710+ SummitScopes::WriteRegistrationData,
711+ ]]],
712+ x: ['required-groups ' => [
713+ IGroup::SuperAdmins,
714+ IGroup::Administrators,
715+ IGroup::SummitAdministrators,
716+ IGroup::SummitRegistrationAdmins,
717+ ]],
673718 tags: ['tickets ' ],
674719 parameters: [
675720 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -749,7 +794,16 @@ public function getImportTicketDataTemplate($summit_id)
749794 path: '/api/v1/summits/{summit_id}/tickets/import ' ,
750795 summary: 'Import ticket data from CSV ' ,
751796 description: 'Imports ticket data from a CSV file ' ,
752- security: [['bearer ' => []]],
797+ security: [['summit_tickets_oauth2 ' => [
798+ SummitScopes::WriteSummitData,
799+ SummitScopes::WriteRegistrationData,
800+ ]]],
801+ x: ['required-groups ' => [
802+ IGroup::SuperAdmins,
803+ IGroup::Administrators,
804+ IGroup::SummitAdministrators,
805+ IGroup::SummitRegistrationAdmins,
806+ ]],
753807 tags: ['tickets ' ],
754808 parameters: [
755809 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -801,7 +855,9 @@ public function importTicketData(LaravelRequest $request, $summit_id)
801855 path: '/api/v1/summits/all/tickets/me ' ,
802856 summary: 'Get all my tickets across all summits ' ,
803857 description: 'Returns all tickets owned by the current user across all summits ' ,
804- security: [['bearer ' => []]],
858+ security: [['summit_tickets_oauth2 ' => [
859+ SummitScopes::ReadMyRegistrationOrders,
860+ ]]],
805861 tags: ['tickets ' ],
806862 parameters: [
807863 new OA \Parameter (name: 'page ' , in: 'query ' , required: false , description: 'Page number ' , schema: new OA \Schema (type: 'integer ' , default: 1 )),
@@ -828,7 +884,9 @@ public function getAllMyTickets()
828884 path: '/api/v1/summits/{summit_id}/tickets/me ' ,
829885 summary: 'Get my tickets for a summit ' ,
830886 description: 'Returns all tickets owned by the current user for a specific summit ' ,
831- security: [['bearer ' => []]],
887+ security: [['summit_tickets_oauth2 ' => [
888+ SummitScopes::ReadMyRegistrationOrders,
889+ ]]],
832890 tags: ['tickets ' ],
833891 parameters: [
834892 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -963,7 +1021,16 @@ protected function getChildFromSummit(Summit $summit, $child_id): ?IEntity
9631021 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/refund ' ,
9641022 summary: 'Refund a ticket ' ,
9651023 description: 'Processes a refund for a specific ticket ' ,
966- security: [['bearer ' => []]],
1024+ security: [['summit_tickets_oauth2 ' => [
1025+ SummitScopes::WriteSummitData,
1026+ SummitScopes::UpdateRegistrationOrders,
1027+ ]]],
1028+ x: ['required-groups ' => [
1029+ IGroup::SuperAdmins,
1030+ IGroup::Administrators,
1031+ IGroup::SummitAdministrators,
1032+ IGroup::SummitRegistrationAdmins,
1033+ ]],
9671034 tags: ['tickets ' ],
9681035 parameters: [
9691036 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1026,7 +1093,16 @@ public function refundTicket($summit_id, $ticket_id)
10261093 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge ' ,
10271094 summary: 'Get ticket badge ' ,
10281095 description: 'Returns the badge associated with a ticket ' ,
1029- security: [['bearer ' => []]],
1096+ security: [['summit_tickets_oauth2 ' => [
1097+ SummitScopes::ReadAllSummitData,
1098+ SummitScopes::ReadRegistrationOrders,
1099+ ]]],
1100+ x: ['required-groups ' => [
1101+ IGroup::SuperAdmins,
1102+ IGroup::Administrators,
1103+ IGroup::SummitAdministrators,
1104+ IGroup::SummitRegistrationAdmins,
1105+ ]],
10301106 tags: ['tickets ' ],
10311107 parameters: [
10321108 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1069,7 +1145,16 @@ public function getAttendeeBadge($summit_id, $ticket_id)
10691145 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge ' ,
10701146 summary: 'Create ticket badge ' ,
10711147 description: 'Creates a badge for a specific ticket ' ,
1072- security: [['bearer ' => []]],
1148+ security: [['summit_tickets_oauth2 ' => [
1149+ SummitScopes::WriteSummitData,
1150+ SummitScopes::UpdateRegistrationOrdersBadges,
1151+ ]]],
1152+ x: ['required-groups ' => [
1153+ IGroup::SuperAdmins,
1154+ IGroup::Administrators,
1155+ IGroup::SummitAdministrators,
1156+ IGroup::SummitRegistrationAdmins,
1157+ ]],
10731158 tags: ['tickets ' ],
10741159 parameters: [
10751160 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1113,7 +1198,16 @@ public function createAttendeeBadge($summit_id, $ticket_id)
11131198 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge ' ,
11141199 summary: 'Delete ticket badge ' ,
11151200 description: 'Deletes the badge associated with a ticket ' ,
1116- security: [['bearer ' => []]],
1201+ security: [['summit_tickets_oauth2 ' => [
1202+ SummitScopes::WriteSummitData,
1203+ SummitScopes::UpdateRegistrationOrders,
1204+ ]]],
1205+ x: ['required-groups ' => [
1206+ IGroup::SuperAdmins,
1207+ IGroup::Administrators,
1208+ IGroup::SummitAdministrators,
1209+ IGroup::SummitRegistrationAdmins,
1210+ ]],
11171211 tags: ['tickets ' ],
11181212 parameters: [
11191213 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1139,7 +1233,16 @@ public function deleteAttendeeBadge($summit_id, $ticket_id)
11391233 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/type/{type_id} ' ,
11401234 summary: 'Update badge type ' ,
11411235 description: 'Updates the badge type for a ticket ' ,
1142- security: [['bearer ' => []]],
1236+ security: [['summit_tickets_oauth2 ' => [
1237+ SummitScopes::WriteSummitData,
1238+ SummitScopes::UpdateRegistrationOrdersBadges,
1239+ ]]],
1240+ x: ['required-groups ' => [
1241+ IGroup::SuperAdmins,
1242+ IGroup::Administrators,
1243+ IGroup::SummitAdministrators,
1244+ IGroup::SummitRegistrationAdmins,
1245+ ]],
11431246 tags: ['tickets ' ],
11441247 parameters: [
11451248 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1175,7 +1278,16 @@ public function updateAttendeeBadgeType($summit_id, $ticket_id, $type_id)
11751278 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/features/{feature_id} ' ,
11761279 summary: 'Add badge feature ' ,
11771280 description: 'Adds a feature to a ticket badge ' ,
1178- security: [['bearer ' => []]],
1281+ security: [['summit_tickets_oauth2 ' => [
1282+ SummitScopes::WriteSummitData,
1283+ SummitScopes::UpdateRegistrationOrdersBadges,
1284+ ]]],
1285+ x: ['required-groups ' => [
1286+ IGroup::SuperAdmins,
1287+ IGroup::Administrators,
1288+ IGroup::SummitAdministrators,
1289+ IGroup::SummitRegistrationAdmins,
1290+ ]],
11791291 tags: ['tickets ' ],
11801292 parameters: [
11811293 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1211,7 +1323,16 @@ public function addAttendeeBadgeFeature($summit_id, $ticket_id, $feature_id)
12111323 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/features/{feature_id} ' ,
12121324 summary: 'Remove badge feature ' ,
12131325 description: 'Removes a feature from a ticket badge ' ,
1214- security: [['bearer ' => []]],
1326+ security: [['summit_tickets_oauth2 ' => [
1327+ SummitScopes::WriteSummitData,
1328+ SummitScopes::UpdateRegistrationOrdersBadges,
1329+ ]]],
1330+ x: ['required-groups ' => [
1331+ IGroup::SuperAdmins,
1332+ IGroup::Administrators,
1333+ IGroup::SummitAdministrators,
1334+ IGroup::SummitRegistrationAdmins,
1335+ ]],
12151336 tags: ['tickets ' ],
12161337 parameters: [
12171338 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1247,7 +1368,17 @@ public function removeAttendeeBadgeFeature($summit_id, $ticket_id, $feature_id)
12471368 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/print ' ,
12481369 summary: 'Print badge with default view ' ,
12491370 description: 'Prints a badge using the summit \'s default view type ' ,
1250- security: [['bearer ' => []]],
1371+ security: [['summit_tickets_oauth2 ' => [
1372+ SummitScopes::WriteSummitData,
1373+ SummitScopes::PrintRegistrationOrdersBadges,
1374+ ]]],
1375+ x: ['required-groups ' => [
1376+ IGroup::SuperAdmins,
1377+ IGroup::Administrators,
1378+ IGroup::SummitAdministrators,
1379+ IGroup::SummitRegistrationAdmins,
1380+ IGroup::BadgePrinters,
1381+ ]],
12511382 tags: ['tickets ' ],
12521383 parameters: [
12531384 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1284,7 +1415,17 @@ public function printAttendeeBadgeDefault($summit_id, $ticket_id)
12841415 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/{view_type}/print ' ,
12851416 summary: 'Print badge with specific view type ' ,
12861417 description: 'Prints a badge using a specific view type ' ,
1287- security: [['bearer ' => []]],
1418+ security: [['summit_tickets_oauth2 ' => [
1419+ SummitScopes::WriteSummitData,
1420+ SummitScopes::PrintRegistrationOrdersBadges,
1421+ ]]],
1422+ x: ['required-groups ' => [
1423+ IGroup::SuperAdmins,
1424+ IGroup::Administrators,
1425+ IGroup::SummitAdministrators,
1426+ IGroup::SummitRegistrationAdmins,
1427+ IGroup::BadgePrinters,
1428+ ]],
12881429 tags: ['tickets ' ],
12891430 parameters: [
12901431 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1339,7 +1480,17 @@ public function printAttendeeBadge($summit_id, $ticket_id, $view_type)
13391480 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/can-print ' ,
13401481 summary: 'Check if badge can be printed (default view) ' ,
13411482 description: 'Checks if a badge can be printed using the default view type ' ,
1342- security: [['bearer ' => []]],
1483+ security: [['summit_tickets_oauth2 ' => [
1484+ SummitScopes::ReadAllSummitData,
1485+ SummitScopes::PrintRegistrationOrdersBadges,
1486+ ]]],
1487+ x: ['required-groups ' => [
1488+ IGroup::SuperAdmins,
1489+ IGroup::Administrators,
1490+ IGroup::SummitAdministrators,
1491+ IGroup::SummitRegistrationAdmins,
1492+ IGroup::BadgePrinters,
1493+ ]],
13431494 tags: ['tickets ' ],
13441495 parameters: [
13451496 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1372,7 +1523,17 @@ public function canPrintAttendeeBadgeDefault($summit_id, $ticket_id)
13721523 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/{view_type}/can-print ' ,
13731524 summary: 'Check if badge can be printed (specific view) ' ,
13741525 description: 'Checks if a badge can be printed using a specific view type ' ,
1375- security: [['bearer ' => []]],
1526+ security: [['summit_tickets_oauth2 ' => [
1527+ SummitScopes::ReadAllSummitData,
1528+ SummitScopes::PrintRegistrationOrdersBadges,
1529+ ]]],
1530+ x: ['required-groups ' => [
1531+ IGroup::SuperAdmins,
1532+ IGroup::Administrators,
1533+ IGroup::SummitAdministrators,
1534+ IGroup::SummitRegistrationAdmins,
1535+ IGroup::BadgePrinters,
1536+ ]],
13761537 tags: ['tickets ' ],
13771538 parameters: [
13781539 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
0 commit comments