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 ' )),
@@ -287,7 +299,13 @@ function () {
287299 path: '/api/v1/summits/{summit_id}/tickets/external ' ,
288300 summary: 'Get external ticket data ' ,
289301 description: 'Returns ticket data from external registration feed by owner email ' ,
290- security: [['bearer ' => []]],
302+ security: [['summit_tickets_oauth2 ' => [
303+ SummitScopes::ReadAllSummitData,
304+ SummitScopes::ReadRegistrationOrders,
305+ ]]],
306+ x: ['required-groups ' => [
307+ IGroup::BadgePrinters,
308+ ]],
291309 tags: ['tickets ' ],
292310 parameters: [
293311 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -362,7 +380,16 @@ function () {
362380 path: '/api/v1/summits/{summit_id}/tickets/csv ' ,
363381 summary: 'Get all tickets for a summit ' ,
364382 description: 'Returns a paginated list of tickets for the specified summit with filtering and sorting capabilities ' ,
365- security: [['bearer ' => []]],
383+ security: [['summit_tickets_oauth2 ' => [
384+ SummitScopes::ReadAllSummitData,
385+ SummitScopes::ReadRegistrationOrders,
386+ ]]],
387+ x: ['required-groups ' => [
388+ IGroup::SuperAdmins,
389+ IGroup::Administrators,
390+ IGroup::SummitAdministrators,
391+ IGroup::SummitRegistrationAdmins,
392+ ]],
366393 tags: ['tickets ' ],
367394 parameters: [
368395 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -624,7 +651,16 @@ function($data, $serializerParams) use($questions){
624651 path: '/api/v1/summits/{summit_id}/tickets/ingest ' ,
625652 summary: 'Ingest external ticket data ' ,
626653 description: 'Triggers ingestion of ticket data from external registration feed ' ,
627- security: [['bearer ' => []]],
654+ security: [['summit_tickets_oauth2 ' => [
655+ SummitScopes::WriteSummitData,
656+ SummitScopes::WriteRegistrationData,
657+ ]]],
658+ x: ['required-groups ' => [
659+ IGroup::SuperAdmins,
660+ IGroup::Administrators,
661+ IGroup::SummitAdministrators,
662+ IGroup::SummitRegistrationAdmins,
663+ ]],
628664 tags: ['tickets ' ],
629665 parameters: [
630666 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -665,7 +701,16 @@ public function ingestExternalTicketData($summit_id)
665701 path: '/api/v1/summits/{summit_id}/tickets/import-template ' ,
666702 summary: 'Get ticket import template ' ,
667703 description: 'Returns a CSV template for importing ticket data ' ,
668- security: [['bearer ' => []]],
704+ security: [['summit_tickets_oauth2 ' => [
705+ SummitScopes::WriteSummitData,
706+ SummitScopes::WriteRegistrationData,
707+ ]]],
708+ x: ['required-groups ' => [
709+ IGroup::SuperAdmins,
710+ IGroup::Administrators,
711+ IGroup::SummitAdministrators,
712+ IGroup::SummitRegistrationAdmins,
713+ ]],
669714 tags: ['tickets ' ],
670715 parameters: [
671716 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -745,7 +790,16 @@ public function getImportTicketDataTemplate($summit_id)
745790 path: '/api/v1/summits/{summit_id}/tickets/import ' ,
746791 summary: 'Import ticket data from CSV ' ,
747792 description: 'Imports ticket data from a CSV file ' ,
748- security: [['bearer ' => []]],
793+ security: [['summit_tickets_oauth2 ' => [
794+ SummitScopes::WriteSummitData,
795+ SummitScopes::WriteRegistrationData,
796+ ]]],
797+ x: ['required-groups ' => [
798+ IGroup::SuperAdmins,
799+ IGroup::Administrators,
800+ IGroup::SummitAdministrators,
801+ IGroup::SummitRegistrationAdmins,
802+ ]],
749803 tags: ['tickets ' ],
750804 parameters: [
751805 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -797,7 +851,9 @@ public function importTicketData(LaravelRequest $request, $summit_id)
797851 path: '/api/v1/summits/all/tickets/me ' ,
798852 summary: 'Get all my tickets across all summits ' ,
799853 description: 'Returns all tickets owned by the current user across all summits ' ,
800- security: [['bearer ' => []]],
854+ security: [['summit_tickets_oauth2 ' => [
855+ SummitScopes::ReadMyRegistrationOrders,
856+ ]]],
801857 tags: ['tickets ' ],
802858 parameters: [
803859 new OA \Parameter (name: 'page ' , in: 'query ' , required: false , description: 'Page number ' , schema: new OA \Schema (type: 'integer ' , default: 1 )),
@@ -824,7 +880,9 @@ public function getAllMyTickets()
824880 path: '/api/v1/summits/{summit_id}/tickets/me ' ,
825881 summary: 'Get my tickets for a summit ' ,
826882 description: 'Returns all tickets owned by the current user for a specific summit ' ,
827- security: [['bearer ' => []]],
883+ security: [['summit_tickets_oauth2 ' => [
884+ SummitScopes::ReadMyRegistrationOrders,
885+ ]]],
828886 tags: ['tickets ' ],
829887 parameters: [
830888 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -959,7 +1017,16 @@ protected function getChildFromSummit(Summit $summit, $child_id): ?IEntity
9591017 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/refund ' ,
9601018 summary: 'Refund a ticket ' ,
9611019 description: 'Processes a refund for a specific ticket ' ,
962- security: [['bearer ' => []]],
1020+ security: [['summit_tickets_oauth2 ' => [
1021+ SummitScopes::WriteSummitData,
1022+ SummitScopes::UpdateRegistrationOrders,
1023+ ]]],
1024+ x: ['required-groups ' => [
1025+ IGroup::SuperAdmins,
1026+ IGroup::Administrators,
1027+ IGroup::SummitAdministrators,
1028+ IGroup::SummitRegistrationAdmins,
1029+ ]],
9631030 tags: ['tickets ' ],
9641031 parameters: [
9651032 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1022,7 +1089,16 @@ public function refundTicket($summit_id, $ticket_id)
10221089 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge ' ,
10231090 summary: 'Get ticket badge ' ,
10241091 description: 'Returns the badge associated with a ticket ' ,
1025- security: [['bearer ' => []]],
1092+ security: [['summit_tickets_oauth2 ' => [
1093+ SummitScopes::ReadAllSummitData,
1094+ SummitScopes::ReadRegistrationOrders,
1095+ ]]],
1096+ x: ['required-groups ' => [
1097+ IGroup::SuperAdmins,
1098+ IGroup::Administrators,
1099+ IGroup::SummitAdministrators,
1100+ IGroup::SummitRegistrationAdmins,
1101+ ]],
10261102 tags: ['tickets ' ],
10271103 parameters: [
10281104 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1065,7 +1141,16 @@ public function getAttendeeBadge($summit_id, $ticket_id)
10651141 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge ' ,
10661142 summary: 'Create ticket badge ' ,
10671143 description: 'Creates a badge for a specific ticket ' ,
1068- security: [['bearer ' => []]],
1144+ security: [['summit_tickets_oauth2 ' => [
1145+ SummitScopes::WriteSummitData,
1146+ SummitScopes::UpdateRegistrationOrdersBadges,
1147+ ]]],
1148+ x: ['required-groups ' => [
1149+ IGroup::SuperAdmins,
1150+ IGroup::Administrators,
1151+ IGroup::SummitAdministrators,
1152+ IGroup::SummitRegistrationAdmins,
1153+ ]],
10691154 tags: ['tickets ' ],
10701155 parameters: [
10711156 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1109,7 +1194,16 @@ public function createAttendeeBadge($summit_id, $ticket_id)
11091194 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge ' ,
11101195 summary: 'Delete ticket badge ' ,
11111196 description: 'Deletes the badge associated with a ticket ' ,
1112- security: [['bearer ' => []]],
1197+ security: [['summit_tickets_oauth2 ' => [
1198+ SummitScopes::WriteSummitData,
1199+ SummitScopes::UpdateRegistrationOrders,
1200+ ]]],
1201+ x: ['required-groups ' => [
1202+ IGroup::SuperAdmins,
1203+ IGroup::Administrators,
1204+ IGroup::SummitAdministrators,
1205+ IGroup::SummitRegistrationAdmins,
1206+ ]],
11131207 tags: ['tickets ' ],
11141208 parameters: [
11151209 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1135,7 +1229,16 @@ public function deleteAttendeeBadge($summit_id, $ticket_id)
11351229 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/type/{type_id} ' ,
11361230 summary: 'Update badge type ' ,
11371231 description: 'Updates the badge type for a ticket ' ,
1138- security: [['bearer ' => []]],
1232+ security: [['summit_tickets_oauth2 ' => [
1233+ SummitScopes::WriteSummitData,
1234+ SummitScopes::UpdateRegistrationOrdersBadges,
1235+ ]]],
1236+ x: ['required-groups ' => [
1237+ IGroup::SuperAdmins,
1238+ IGroup::Administrators,
1239+ IGroup::SummitAdministrators,
1240+ IGroup::SummitRegistrationAdmins,
1241+ ]],
11391242 tags: ['tickets ' ],
11401243 parameters: [
11411244 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1171,7 +1274,16 @@ public function updateAttendeeBadgeType($summit_id, $ticket_id, $type_id)
11711274 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/features/{feature_id} ' ,
11721275 summary: 'Add badge feature ' ,
11731276 description: 'Adds a feature to a ticket badge ' ,
1174- security: [['bearer ' => []]],
1277+ security: [['summit_tickets_oauth2 ' => [
1278+ SummitScopes::WriteSummitData,
1279+ SummitScopes::UpdateRegistrationOrdersBadges,
1280+ ]]],
1281+ x: ['required-groups ' => [
1282+ IGroup::SuperAdmins,
1283+ IGroup::Administrators,
1284+ IGroup::SummitAdministrators,
1285+ IGroup::SummitRegistrationAdmins,
1286+ ]],
11751287 tags: ['tickets ' ],
11761288 parameters: [
11771289 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1207,7 +1319,16 @@ public function addAttendeeBadgeFeature($summit_id, $ticket_id, $feature_id)
12071319 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/features/{feature_id} ' ,
12081320 summary: 'Remove badge feature ' ,
12091321 description: 'Removes a feature from a ticket badge ' ,
1210- security: [['bearer ' => []]],
1322+ security: [['summit_tickets_oauth2 ' => [
1323+ SummitScopes::WriteSummitData,
1324+ SummitScopes::UpdateRegistrationOrdersBadges,
1325+ ]]],
1326+ x: ['required-groups ' => [
1327+ IGroup::SuperAdmins,
1328+ IGroup::Administrators,
1329+ IGroup::SummitAdministrators,
1330+ IGroup::SummitRegistrationAdmins,
1331+ ]],
12111332 tags: ['tickets ' ],
12121333 parameters: [
12131334 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1243,7 +1364,17 @@ public function removeAttendeeBadgeFeature($summit_id, $ticket_id, $feature_id)
12431364 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/print ' ,
12441365 summary: 'Print badge with default view ' ,
12451366 description: 'Prints a badge using the summit \'s default view type ' ,
1246- security: [['bearer ' => []]],
1367+ security: [['summit_tickets_oauth2 ' => [
1368+ SummitScopes::WriteSummitData,
1369+ SummitScopes::PrintRegistrationOrdersBadges,
1370+ ]]],
1371+ x: ['required-groups ' => [
1372+ IGroup::SuperAdmins,
1373+ IGroup::Administrators,
1374+ IGroup::SummitAdministrators,
1375+ IGroup::SummitRegistrationAdmins,
1376+ IGroup::BadgePrinters,
1377+ ]],
12471378 tags: ['tickets ' ],
12481379 parameters: [
12491380 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1280,7 +1411,17 @@ public function printAttendeeBadgeDefault($summit_id, $ticket_id)
12801411 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/{view_type}/print ' ,
12811412 summary: 'Print badge with specific view type ' ,
12821413 description: 'Prints a badge using a specific view type ' ,
1283- security: [['bearer ' => []]],
1414+ security: [['summit_tickets_oauth2 ' => [
1415+ SummitScopes::WriteSummitData,
1416+ SummitScopes::PrintRegistrationOrdersBadges,
1417+ ]]],
1418+ x: ['required-groups ' => [
1419+ IGroup::SuperAdmins,
1420+ IGroup::Administrators,
1421+ IGroup::SummitAdministrators,
1422+ IGroup::SummitRegistrationAdmins,
1423+ IGroup::BadgePrinters,
1424+ ]],
12841425 tags: ['tickets ' ],
12851426 parameters: [
12861427 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1335,7 +1476,17 @@ public function printAttendeeBadge($summit_id, $ticket_id, $view_type)
13351476 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/can-print ' ,
13361477 summary: 'Check if badge can be printed (default view) ' ,
13371478 description: 'Checks if a badge can be printed using the default view type ' ,
1338- security: [['bearer ' => []]],
1479+ security: [['summit_tickets_oauth2 ' => [
1480+ SummitScopes::ReadAllSummitData,
1481+ SummitScopes::PrintRegistrationOrdersBadges,
1482+ ]]],
1483+ x: ['required-groups ' => [
1484+ IGroup::SuperAdmins,
1485+ IGroup::Administrators,
1486+ IGroup::SummitAdministrators,
1487+ IGroup::SummitRegistrationAdmins,
1488+ IGroup::BadgePrinters,
1489+ ]],
13391490 tags: ['tickets ' ],
13401491 parameters: [
13411492 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
@@ -1368,7 +1519,17 @@ public function canPrintAttendeeBadgeDefault($summit_id, $ticket_id)
13681519 path: '/api/v1/summits/{summit_id}/tickets/{ticket_id}/badge/{view_type}/can-print ' ,
13691520 summary: 'Check if badge can be printed (specific view) ' ,
13701521 description: 'Checks if a badge can be printed using a specific view type ' ,
1371- security: [['bearer ' => []]],
1522+ security: [['summit_tickets_oauth2 ' => [
1523+ SummitScopes::ReadAllSummitData,
1524+ SummitScopes::PrintRegistrationOrdersBadges,
1525+ ]]],
1526+ x: ['required-groups ' => [
1527+ IGroup::SuperAdmins,
1528+ IGroup::Administrators,
1529+ IGroup::SummitAdministrators,
1530+ IGroup::SummitRegistrationAdmins,
1531+ IGroup::BadgePrinters,
1532+ ]],
13721533 tags: ['tickets ' ],
13731534 parameters: [
13741535 new OA \Parameter (name: 'summit_id ' , in: 'path ' , required: true , description: 'Summit ID or slug ' , schema: new OA \Schema (type: 'string ' )),
0 commit comments