From 18ac3076eb3deb49c99cea58ee5ffcd193a793fe Mon Sep 17 00:00:00 2001 From: matiasperrone-exo Date: Fri, 13 Feb 2026 20:43:36 +0000 Subject: [PATCH 1/3] feat: Add OpenAPI documentation annotations for OAuth2UserApiController v1 --- .../Api/OAuth2/OAuth2UserApiController.php | 413 ++++++++++++++++++ app/Swagger/Models/UserInfoResponseSchema.php | 90 ++++ .../OAuth2UserApiControllerSchemas.php | 26 ++ .../Requests/CreateUserRequestSchema.php | 30 ++ .../UpdateUserGroupsRequestSchema.php | 36 ++ .../Requests/UpdateUserPicRequestSchema.php | 35 ++ .../Requests/UpdateUserRequestSchema.php | 29 ++ app/Swagger/Requests/UserFieldsSchema.php | 308 +++++++++++++ app/Swagger/Security/UsersOAuth2Schema.php | 32 ++ 9 files changed, 999 insertions(+) create mode 100644 app/Swagger/Models/UserInfoResponseSchema.php create mode 100644 app/Swagger/OAuth2UserApiControllerSchemas.php create mode 100644 app/Swagger/Requests/CreateUserRequestSchema.php create mode 100644 app/Swagger/Requests/UpdateUserGroupsRequestSchema.php create mode 100644 app/Swagger/Requests/UpdateUserPicRequestSchema.php create mode 100644 app/Swagger/Requests/UpdateUserRequestSchema.php create mode 100644 app/Swagger/Requests/UserFieldsSchema.php create mode 100644 app/Swagger/Security/UsersOAuth2Schema.php diff --git a/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php b/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php index 20356e1d..e29ad85a 100644 --- a/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php +++ b/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php @@ -52,6 +52,75 @@ final class OAuth2UserApiController extends OAuth2ProtectedController use RequestProcessor; + #[OA\Get( + path: '/api/v1/users', + summary: 'Get all users', + operationId: 'getUsers', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::ReadAll, + ] + ], + ], + parameters: [ + new OA\Parameter( + name: 'page', + description: 'Page number', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer') + ), + new OA\Parameter( + name: 'per_page', + description: 'Items per page (5-100)', + in: 'query', + required: false, + schema: new OA\Schema(type: 'integer') + ), + new OA\Parameter( + name: 'filter', + description: 'Filter (first_name, last_name, email, primary_email)', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string') + ), + new OA\Parameter( + name: 'order', + description: 'Order', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string') + ), + new OA\Parameter( + name: 'expand', + description: 'Expand relations: groups', + in: 'query', + required: false, + schema: new OA\Schema(type: 'string') + ), + ], + responses: [ + new OA\Response( + response: HttpResponse::HTTP_OK, + description: 'OK', + content: new OA\JsonContent(ref: '#/components/schemas/PaginatedUserResponseSchema') + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] protected function getAllSerializerType(): string { return SerializerRegistry::SerializerType_Private; @@ -142,6 +211,32 @@ public function __construct * Gets User Basic Info * @return mixed */ + #[OA\Get( + path: '/api/v1/users/me', + summary: 'Get current user basic info', + operationId: 'getCurrentUser', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::Profile, + IUserScopes::Email, + IUserScopes::Address, + ] + ], + ], + responses: [ + new OA\Response( + response: HttpResponse::HTTP_OK, + description: 'OK', + content: new OA\JsonContent(ref: '#/components/schemas/User') + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function me() { try { @@ -237,18 +332,194 @@ private function _update($id){ } } + #[OA\Post( + path: '/api/v1/users', + summary: 'Create a new user', + operationId: 'createUser', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::Write, + ] + ], + ], + requestBody: new OA\RequestBody( + description: 'User data', + required: true, + content: new OA\JsonContent(ref: '#/components/schemas/CreateUserRequest') + ), + responses: [ + new OA\Response( + response: HttpResponse::HTTP_CREATED, + description: 'Created', + content: new OA\JsonContent(ref: '#/components/schemas/User') + ), + new OA\Response( + response: HttpResponse::HTTP_BAD_REQUEST, + description: 'Bad Request' + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function create(){ return $this->_create(); } + #[OA\Put( + path: '/api/v1/users/me', + summary: 'Update current user', + operationId: 'updateCurrentUser', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::MeWrite, + ] + ], + ], + requestBody: new OA\RequestBody( + description: 'User data to update', + required: true, + content: new OA\JsonContent(ref: '#/components/schemas/UpdateUserRequest') + ), + responses: [ + new OA\Response( + response: HttpResponse::HTTP_CREATED, + description: 'Updated', + content: new OA\JsonContent(ref: '#/components/schemas/User') + ), + new OA\Response( + response: HttpResponse::HTTP_BAD_REQUEST, + description: 'Bad Request' + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function updateMe(){ return $this->_update($this->resource_server_context->getCurrentUserId()); } + #[OA\Put( + path: '/api/v1/users/{id}', + summary: 'Update a user by ID', + operationId: 'updateUser', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::Write, + ] + ], + ], + parameters: [ + new OA\Parameter( + name: 'id', + description: 'User ID', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer') + ), + ], + requestBody: new OA\RequestBody( + description: 'User data to update', + required: true, + content: new OA\JsonContent(ref: '#/components/schemas/UpdateUserRequest') + ), + responses: [ + new OA\Response( + response: HttpResponse::HTTP_CREATED, + description: 'Updated', + content: new OA\JsonContent(ref: '#/components/schemas/User') + ), + new OA\Response( + response: HttpResponse::HTTP_BAD_REQUEST, + description: 'Bad Request' + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function update($id){ return $this->_update($id); } + #[OA\Put( + path: '/api/v1/users/me/pic', + summary: 'Update current user profile picture', + operationId: 'updateCurrentUserProfilePicture', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::MeWrite, + ] + ], + ], + requestBody: new OA\RequestBody( + description: 'Profile picture file', + required: true, + content: new OA\MediaType( + mediaType: 'multipart/form-data', + schema: new OA\Schema(ref: '#/components/schemas/UpdateUserPicRequest') + ) + ), + responses: [ + new OA\Response( + response: HttpResponse::HTTP_CREATED, + description: 'Updated', + content: new OA\JsonContent(ref: '#/components/schemas/User') + ), + new OA\Response( + response: HttpResponse::HTTP_FORBIDDEN, + description: 'Forbidden' + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function updateMyPic(LaravelRequest $request){ try { if (!$this->resource_server_context->getCurrentUserId()) { @@ -279,6 +550,58 @@ public function updateMyPic(LaravelRequest $request){ } } + #[OA\Get( + path: '/api/v1/users/info', + summary: 'Get current user info (OpenID Connect UserInfo)', + operationId: 'getUserInfo', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::Profile, + IUserScopes::Email, + IUserScopes::Address, + ] + ], + ], + responses: [ + new OA\Response( + response: HttpResponse::HTTP_OK, + description: 'OK', + content: new OA\JsonContent(ref: '#/components/schemas/UserInfoResponse') + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] + #[OA\Post( + path: '/api/v1/users/info', + summary: 'Get current user info (OpenID Connect UserInfo)', + operationId: 'getUserInfoPost', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::Profile, + IUserScopes::Email, + IUserScopes::Address, + ] + ], + ], + responses: [ + new OA\Response( + response: HttpResponse::HTTP_OK, + description: 'OK', + content: new OA\JsonContent(ref: '#/components/schemas/UserInfoResponse') + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function userInfo() { try { @@ -315,6 +638,47 @@ public function userInfo() * @param $id * @return \Illuminate\Http\JsonResponse|mixed */ + #[OA\Get( + path: '/api/v1/users/{id}', + summary: 'Get a user by ID', + operationId: 'getUserById', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::ReadAll, + ] + ], + ], + parameters: [ + new OA\Parameter( + name: 'id', + description: 'User ID', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer') + ), + ], + responses: [ + new OA\Response( + response: HttpResponse::HTTP_OK, + description: 'OK', + content: new OA\JsonContent(ref: '#/components/schemas/User') + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function get($id) { try { @@ -408,6 +772,55 @@ public function getV2($id) * @param $user_id * @return JsonResponse|mixed */ + #[OA\Put( + path: '/api/v1/users/{id}/groups', + summary: 'Update user group assignments (only for account type "SERVICE")', + operationId: 'updateUserGroups', + tags: ['Users'], + security: [ + [ + 'user_oauth2' => [ + IUserScopes::UserGroupWrite, + ] + ], + ], + parameters: [ + new OA\Parameter( + name: 'id', + description: 'User ID', + in: 'path', + required: true, + schema: new OA\Schema(type: 'integer') + ), + ], + requestBody: new OA\RequestBody( + description: 'Group IDs to assign', + required: true, + content: new OA\JsonContent(ref: '#/components/schemas/UpdateUserGroupsRequest') + ), + responses: [ + new OA\Response( + response: HttpResponse::HTTP_CREATED, + description: 'Updated' + ), + new OA\Response( + response: HttpResponse::HTTP_BAD_REQUEST, + description: 'Bad Request' + ), + new OA\Response( + response: HttpResponse::HTTP_NOT_FOUND, + description: 'Not Found' + ), + new OA\Response( + response: HttpResponse::HTTP_PRECONDITION_FAILED, + description: 'Validation Failed' + ), + new OA\Response( + response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, + description: 'Server Error' + ), + ] + )] public function updateUserGroups($user_id): mixed { return $this->processRequest(function() use($user_id) { diff --git a/app/Swagger/Models/UserInfoResponseSchema.php b/app/Swagger/Models/UserInfoResponseSchema.php new file mode 100644 index 00000000..3ef3209f --- /dev/null +++ b/app/Swagger/Models/UserInfoResponseSchema.php @@ -0,0 +1,90 @@ + 'Read User Profile', + IUserScopes::Email => 'Read User Email', + IUserScopes::Address => 'Read User Address', + IUserScopes::ReadAll => 'Read All Users Data', + IUserScopes::MeWrite => 'Write Current User Data', + IUserScopes::Write => 'Write Users Data', + IUserScopes::UserGroupWrite => 'Write User Group Assignments', + ], + ), + ], +) +] +class UsersOAuth2Schema +{ +} From 1901d76561ae871cc803b67df9d464899b098c77 Mon Sep 17 00:00:00 2001 From: matiasperrone-exo Date: Mon, 16 Mar 2026 19:32:43 +0000 Subject: [PATCH 2/3] chore: Add PR requested changes --- .../Api/OAuth2/OAuth2UserApiController.php | 142 +++++++++--------- .../OAuth2UserApiControllerSchemas.php | 2 +- app/Swagger/Security/UsersOAuth2Schema.php | 2 +- 3 files changed, 71 insertions(+), 75 deletions(-) diff --git a/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php b/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php index e29ad85a..94b19bc0 100644 --- a/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php +++ b/app/Http/Controllers/Api/OAuth2/OAuth2UserApiController.php @@ -1,4 +1,5 @@ - [ + 'OAuth2UserSecurity' => [ IUserScopes::ReadAll, ] ], @@ -105,7 +106,7 @@ final class OAuth2UserApiController extends OAuth2ProtectedController new OA\Response( response: HttpResponse::HTTP_OK, description: 'OK', - content: new OA\JsonContent(ref: '#/components/schemas/PaginatedUserResponseSchema') + content: new OA\JsonContent(ref: '#/components/schemas/PaginatedUserResponse') ), new OA\Response( response: HttpResponse::HTTP_NOT_FOUND, @@ -197,8 +198,7 @@ public function __construct IOpenIdUserService $openid_user_service, IClientRepository $client_repository, IdTokenBuilder $id_token_builder - ) - { + ) { parent::__construct($resource_server_context, $log_service); $this->repository = $repository; $this->user_service = $user_service; @@ -217,13 +217,9 @@ public function __construct operationId: 'getCurrentUser', tags: ['Users'], security: [ - [ - 'user_oauth2' => [ - IUserScopes::Profile, - IUserScopes::Email, - IUserScopes::Address, - ] - ], + ['OAuth2UserSecurity' => [IUserScopes::Profile]], + ['OAuth2UserSecurity' => [IUserScopes::Email]], + ['OAuth2UserSecurity' => [IUserScopes::Address]], ], responses: [ new OA\Response( @@ -252,24 +248,27 @@ protected function curateUpdatePayload(array $payload): array { // remove possible fields that an user can not update // from this endpoint - if(isset($payload['groups'])) + if (isset($payload['groups'])) unset($payload['groups']); - if(isset($payload['email_verified'])) + if (isset($payload['email_verified'])) unset($payload['email_verified']); - if(isset($payload['active'])) + if (isset($payload['active'])) unset($payload['active']); return HTMLCleaner::cleanData($payload, [ - 'bio', 'statement_of_interest' + 'bio', + 'statement_of_interest' ]); } - private function _create(){ + private function _create() + { try { - if(!Request::isJson()) return $this->error400(); + if (!Request::isJson()) + return $this->error400(); $payload = Request::json()->all(); // Creates a Validator instance and validates the data. @@ -282,27 +281,24 @@ private function _create(){ $user = $this->openid_user_service->create($payload); return $this->created(SerializerRegistry::getInstance()->getSerializer($user, SerializerRegistry::SerializerType_Private)->serialize()); - } - catch (ValidationException $ex1) - { + } catch (ValidationException $ex1) { Log::warning($ex1); return $this->error412($ex1->getMessages()); - } - catch (EntityNotFoundException $ex2) - { + } catch (EntityNotFoundException $ex2) { Log::warning($ex2); return $this->error404(['message' => $ex2->getMessage()]); - } - catch (Exception $ex) { + } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } } - private function _update($id){ + private function _update($id) + { try { - if(!Request::isJson()) return $this->error400(); + if (!Request::isJson()) + return $this->error400(); $payload = Request::json()->all(); // Creates a Validator instance and validates the data. @@ -315,18 +311,13 @@ private function _update($id){ $user = $this->openid_user_service->update($id, $this->curateUpdatePayload($payload)); return $this->updated(SerializerRegistry::getInstance()->getSerializer($user, SerializerRegistry::SerializerType_Private)->serialize()); - } - catch (ValidationException $ex1) - { + } catch (ValidationException $ex1) { Log::warning($ex1); return $this->error412($ex1->getMessages()); - } - catch (EntityNotFoundException $ex2) - { + } catch (EntityNotFoundException $ex2) { Log::warning($ex2); return $this->error404(['message' => $ex2->getMessage()]); - } - catch (Exception $ex) { + } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } @@ -339,7 +330,7 @@ private function _update($id){ tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::Write, ] ], @@ -373,8 +364,9 @@ private function _update($id){ ), ] )] - public function create(){ - return $this->_create(); + public function create() + { + return $this->_create(); } #[OA\Put( @@ -384,7 +376,7 @@ public function create(){ tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::MeWrite, ] ], @@ -418,7 +410,8 @@ public function create(){ ), ] )] - public function updateMe(){ + public function updateMe() + { return $this->_update($this->resource_server_context->getCurrentUserId()); } @@ -429,7 +422,7 @@ public function updateMe(){ tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::Write, ] ], @@ -472,8 +465,9 @@ public function updateMe(){ ), ] )] - public function update($id){ - return $this->_update($id); + public function update($id) + { + return $this->_update($id); } #[OA\Put( @@ -483,7 +477,7 @@ public function update($id){ tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::MeWrite, ] ], @@ -520,31 +514,27 @@ public function update($id){ ), ] )] - public function updateMyPic(LaravelRequest $request){ + public function updateMyPic(LaravelRequest $request) + { try { if (!$this->resource_server_context->getCurrentUserId()) { return $this->error403(); } - $file = $request->hasFile('file') ? $request->file('file'):null; - if(is_null($file)){ + $file = $request->hasFile('file') ? $request->file('file') : null; + if (is_null($file)) { throw new ValidationException('file is not present'); } $user = $this->openid_user_service->updateProfilePhoto($this->resource_server_context->getCurrentUserId(), $file); return $this->updated(SerializerRegistry::getInstance()->getSerializer($user, SerializerRegistry::SerializerType_Private)->serialize()); - } - catch (ValidationException $ex1) - { + } catch (ValidationException $ex1) { Log::warning($ex1); return $this->error412($ex1->getMessages()); - } - catch (EntityNotFoundException $ex2) - { + } catch (EntityNotFoundException $ex2) { Log::warning($ex2); return $this->error404(['message' => $ex2->getMessage()]); - } - catch (Exception $ex) { + } catch (Exception $ex) { Log::error($ex); return $this->error500($ex); } @@ -556,13 +546,9 @@ public function updateMyPic(LaravelRequest $request){ operationId: 'getUserInfo', tags: ['Users'], security: [ - [ - 'user_oauth2' => [ - IUserScopes::Profile, - IUserScopes::Email, - IUserScopes::Address, - ] - ], + ['OAuth2UserSecurity' => [IUserScopes::Profile]], + ['OAuth2UserSecurity' => [IUserScopes::Email]], + ['OAuth2UserSecurity' => [IUserScopes::Address]], ], responses: [ new OA\Response( @@ -583,7 +569,7 @@ public function updateMyPic(LaravelRequest $request){ tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::Profile, IUserScopes::Email, IUserScopes::Address, @@ -645,7 +631,7 @@ public function userInfo() tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::ReadAll, ] ], @@ -710,9 +696,11 @@ public function get($id) operationId: 'getUserByIdV2', tags: ['Users', 'V2'], security: [ - ['OAuth2UserSecurity' => [ - IUserScopes::ReadAll, - ]], + [ + 'OAuth2UserSecurity' => [ + IUserScopes::ReadAll, + ] + ], ], x: [ 'x-required-client-type' => 'SERVICE', @@ -755,7 +743,7 @@ public function get($id) )] public function getV2($id) { - return $this->processRequest(function() use($id) { + return $this->processRequest(function () use ($id) { $user = $this->repository->getById(intval($id)); if (is_null($user)) { throw new EntityNotFoundException(); @@ -774,16 +762,19 @@ public function getV2($id) */ #[OA\Put( path: '/api/v1/users/{id}/groups', - summary: 'Update user group assignments (only for account type "SERVICE")', + summary: 'Update user group assignments', operationId: 'updateUserGroups', tags: ['Users'], security: [ [ - 'user_oauth2' => [ + 'OAuth2UserSecurity' => [ IUserScopes::UserGroupWrite, ] ], ], + x: [ + 'x-required-client-type' => 'SERVICE', + ], parameters: [ new OA\Parameter( name: 'id', @@ -819,12 +810,17 @@ public function getV2($id) response: HttpResponse::HTTP_INTERNAL_SERVER_ERROR, description: 'Server Error' ), + new OA\Response( + response: HttpResponse::HTTP_FORBIDDEN, + description: 'Forbidden - Only service accounts are allowed' + ), ] )] public function updateUserGroups($user_id): mixed { - return $this->processRequest(function() use($user_id) { - if(!Request::isJson()) return $this->error400(); + return $this->processRequest(function () use ($user_id) { + if (!Request::isJson()) + return $this->error400(); $payload = Request::json()->all(); // Creates a Validator instance and validates the data. diff --git a/app/Swagger/OAuth2UserApiControllerSchemas.php b/app/Swagger/OAuth2UserApiControllerSchemas.php index bdbe8cbd..36b9e32d 100644 --- a/app/Swagger/OAuth2UserApiControllerSchemas.php +++ b/app/Swagger/OAuth2UserApiControllerSchemas.php @@ -5,7 +5,7 @@ use OpenApi\Attributes as OA; #[OA\Schema( - schema: 'PaginatedUserResponseSchema', + schema: 'PaginatedUserResponse', type: 'object', allOf: [ new OA\Schema(ref: '#/components/schemas/PaginateDataSchemaResponse'), diff --git a/app/Swagger/Security/UsersOAuth2Schema.php b/app/Swagger/Security/UsersOAuth2Schema.php index 53f2ceca..76536e93 100644 --- a/app/Swagger/Security/UsersOAuth2Schema.php +++ b/app/Swagger/Security/UsersOAuth2Schema.php @@ -8,7 +8,7 @@ #[ OA\SecurityScheme( type: 'oauth2', - securityScheme: 'user_oauth2', + securityScheme: 'OAuth2UserSecurity', flows: [ new OA\Flow( flow: 'authorizationCode', From b545fb6c1d6b161cbcab894deb0f274491d4b4c3 Mon Sep 17 00:00:00 2001 From: matiasperrone-exo Date: Mon, 16 Mar 2026 20:34:46 +0000 Subject: [PATCH 3/3] chore: Add PR requested changes --- .../OAuth2UserApiControllerSecuritySchema.php | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 app/Swagger/Security/OAuth2UserApiControllerSecuritySchema.php diff --git a/app/Swagger/Security/OAuth2UserApiControllerSecuritySchema.php b/app/Swagger/Security/OAuth2UserApiControllerSecuritySchema.php deleted file mode 100644 index faa3e459..00000000 --- a/app/Swagger/Security/OAuth2UserApiControllerSecuritySchema.php +++ /dev/null @@ -1,30 +0,0 @@ - 'Read All Users Data', - IUserScopes::MeWrite => 'Write current user data', - IUserScopes::Write => 'Write Users Data', - IUserScopes::UserGroupWrite => 'Manage User Group assignments', - ], - ), - ], -) -] -class OAuth2UserApiControllerSecuritySchema -{ -}