Skip to content

Commit f713895

Browse files
committed
feat: Add OAuth2 security scheme
1 parent 14fd0ed commit f713895

File tree

2 files changed

+72
-4
lines changed

2 files changed

+72
-4
lines changed

app/Http/Controllers/Apis/Protected/Main/OAuth2TagsApiController.php

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
* limitations under the License.
1616
**/
1717

18+
use App\Models\Foundation\Main\IGroup;
1819
use App\ModelSerializers\SerializerUtils;
20+
use App\Security\SummitScopes;
1921
use models\main\ITagRepository;
2022
use models\oauth2\IResourceServerContext;
2123
use Illuminate\Support\Facades\Validator;
@@ -64,8 +66,12 @@ public function __construct
6466
operationId: "getAllTags",
6567
summary: "Get all tags",
6668
description: "Returns a paginated list of tags. Allows ordering, filtering and pagination.",
67-
security: [["oauth2_security_scope" => ["openid", "profile", "email"]]],
6869
tags: ["Tags"],
70+
security: [['tags_oauth2' => [
71+
SummitScopes::ReadAllSummitData,
72+
SummitScopes::ReadSummitData,
73+
SummitScopes::ReadTagsData,
74+
]]],
6975
parameters: [
7076
new OA\Parameter(
7177
name: 'page',
@@ -146,6 +152,11 @@ function () {
146152
summary: "Get a specific tag",
147153
description: "Returns detailed information about a specific tag",
148154
tags: ["Tags"],
155+
security: [['tags_oauth2' => [
156+
SummitScopes::ReadAllSummitData,
157+
SummitScopes::ReadSummitData,
158+
SummitScopes::ReadTagsData,
159+
]]],
149160
parameters: [
150161
new OA\Parameter(
151162
name: "id",
@@ -206,8 +217,18 @@ public function getTag($tag_id){
206217
operationId: "createTag",
207218
summary: "Create a new tag",
208219
description: "Creates a new tag",
209-
security: [["oauth2_security_scope" => ["openid", "profile", "email"]]],
210220
tags: ["Tags"],
221+
x: [
222+
'authz_groups' => [
223+
IGroup::SuperAdmins,
224+
IGroup::Administrators,
225+
IGroup::SummitAdministrators,
226+
]
227+
],
228+
security: [['tags_oauth2' => [
229+
SummitScopes::WriteSummitData,
230+
SummitScopes::WriteTagsData,
231+
]]],
211232
requestBody: new OA\RequestBody(
212233
required: true,
213234
content: new OA\JsonContent(ref: "#/components/schemas/TagRequest")
@@ -259,8 +280,18 @@ public function addTag(){
259280
operationId: "updateTag",
260281
summary: "Update a tag",
261282
description: "Updates an existing tag",
262-
security: [["oauth2_security_scope" => ["openid", "profile", "email"]]],
263283
tags: ["Tags"],
284+
x: [
285+
'authz_groups' => [
286+
IGroup::SuperAdmins,
287+
IGroup::Administrators,
288+
IGroup::SummitAdministrators,
289+
]
290+
],
291+
security: [['tags_oauth2' => [
292+
SummitScopes::WriteSummitData,
293+
SummitScopes::WriteTagsData,
294+
]]],
264295
parameters: [
265296
new OA\Parameter(
266297
name: "id",
@@ -324,8 +355,18 @@ public function updateTag($tag_id){
324355
operationId: "deleteTag",
325356
summary: "Delete a tag",
326357
description: "Deletes a tag",
327-
security: [["oauth2_security_scope" => ["openid", "profile", "email"]]],
328358
tags: ["Tags"],
359+
x: [
360+
'authz_groups' => [
361+
IGroup::SuperAdmins,
362+
IGroup::Administrators,
363+
IGroup::SummitAdministrators,
364+
]
365+
],
366+
security: [['tags_oauth2' => [
367+
SummitScopes::WriteSummitData,
368+
SummitScopes::WriteTagsData,
369+
]]],
329370
parameters: [
330371
new OA\Parameter(
331372
name: "id",
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
namespace App\Swagger\Security;
3+
4+
use App\Security\SummitScopes;
5+
use OpenApi\Attributes as OA;
6+
7+
#[
8+
OA\SecurityScheme(
9+
type: 'oauth2',
10+
securityScheme: 'tags_oauth2',
11+
flows: [
12+
new OA\Flow(
13+
authorizationUrl: L5_SWAGGER_CONST_AUTH_URL,
14+
tokenUrl: L5_SWAGGER_CONST_TOKEN_URL,
15+
flow: 'authorizationCode',
16+
scopes: [
17+
SummitScopes::ReadAllSummitData => 'Read All Summit Data',
18+
SummitScopes::ReadSummitData => 'Read Summit Data',
19+
SummitScopes::ReadTagsData => 'Read Tags Data',
20+
SummitScopes::WriteSummitData => 'Write Summit Data',
21+
SummitScopes::WriteTagsData => 'Write Tags Data',
22+
],
23+
),
24+
],
25+
)
26+
]
27+
class TagsAuthSchema {}

0 commit comments

Comments
 (0)