diff --git a/src/lib/Server/Controller/Role/RoleAssignToUserController.php b/src/lib/Server/Controller/Role/RoleAssignToUserController.php index 67d04ea4f..937d236de 100644 --- a/src/lib/Server/Controller/Role/RoleAssignToUserController.php +++ b/src/lib/Server/Controller/Role/RoleAssignToUserController.php @@ -21,6 +21,7 @@ uriTemplate: '/user/users/{userId}/roles', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.assign_role_to_user', summary: 'Assign Role to User', description: 'Assigns a Role to a user.', tags: [ @@ -28,19 +29,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Role assignment list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'The RoleAssignInput schema encoded in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -55,35 +47,37 @@ ), ], requestBody: new Model\RequestBody( + description: 'The RoleAssignInput schema encoded in XML or JSON format.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.RoleAssignInput+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignInput', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignInput.xml.example', - ], 'application/vnd.ibexa.api.RoleAssignInput+json' => [ 'schema' => [ '$ref' => '#/components/schemas/RoleAssignInputWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignInput.json.example', ], + 'application/vnd.ibexa.api.RoleAssignInput+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/RoleAssignInput', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignInput.xml.example', + ], ]), ), responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the updated Role assignment list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentList', + '$ref' => '#/components/schemas/RoleAssignmentListWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignmentList.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignmentList.json.example', ], - 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentListWrapper', + '$ref' => '#/components/schemas/RoleAssignmentList', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignmentList.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleAssignToUserGroupController.php b/src/lib/Server/Controller/Role/RoleAssignToUserGroupController.php index da43393e7..5aaed075c 100644 --- a/src/lib/Server/Controller/Role/RoleAssignToUserGroupController.php +++ b/src/lib/Server/Controller/Role/RoleAssignToUserGroupController.php @@ -21,6 +21,7 @@ uriTemplate: '/user/groups/{path}/roles', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.assign_role_to_user_group', summary: 'Assign Role to User Group', description: 'Assigns a Role to a User Group.', tags: [ @@ -28,19 +29,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Role assignment list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'The RoleAssignInput schema encoded in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -55,35 +47,37 @@ ), ], requestBody: new Model\RequestBody( + description: 'The RoleAssignInput schema encoded in XML or JSON format.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.RoleAssignInput+xml' => [ + 'application/vnd.ibexa.api.RoleAssignInput+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignInput', + '$ref' => '#/components/schemas/RoleAssignInputWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/POST/RoleAssignInput.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/POST/RoleAssignInput.json.example', ], - 'application/vnd.ibexa.api.RoleAssignInput+json' => [ + 'application/vnd.ibexa.api.RoleAssignInput+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignInputWrapper', + '$ref' => '#/components/schemas/RoleAssignInput', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignInput.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/POST/RoleAssignInput.xml.example', ], ]), ), responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the updated Role assignment list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentList', + '$ref' => '#/components/schemas/RoleAssignmentListWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/POST/RoleAssignmentList.json.example', ], - 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentListWrapper', + '$ref' => '#/components/schemas/RoleAssignmentList', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/POST/RoleAssignmentList.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupListController.php b/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupListController.php index 4fc803ef1..ab593d2a2 100644 --- a/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupListController.php +++ b/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupListController.php @@ -17,21 +17,13 @@ uriTemplate: '/user/groups/{path}/roles', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.load_role_assignments_for_user_group', summary: 'Load Roles for User Group', description: 'Returns a list of all Roles assigned to the given User Group.', tags: [ 'User Group', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Role assignment list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'path', in: 'path', @@ -43,18 +35,19 @@ ], responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the Role assignment list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentList', + '$ref' => '#/components/schemas/RoleAssignmentListWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/GET/RoleAssigmentList.json.example', ], - 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentListWrapper', + '$ref' => '#/components/schemas/RoleAssignmentList', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/GET/RoleAssignmentList.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupLoadByIdController.php b/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupLoadByIdController.php index d396b25a0..c1135092e 100644 --- a/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupLoadByIdController.php +++ b/src/lib/Server/Controller/Role/RoleAssignmentForUserGroupLoadByIdController.php @@ -19,21 +19,13 @@ uriTemplate: '/user/groups/{path}/roles/{roleId}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.load_role_assignment_for_user_group', summary: 'Load User Group Role Assignment', description: 'Returns a Role assignment of the given User Group.', tags: [ 'User Group', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Role assignment list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'path', in: 'path', @@ -55,17 +47,17 @@ Response::HTTP_OK => [ 'description' => 'OK - returns a Role assignment of the given User Group.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignment+xml' => [ + 'application/vnd.ibexa.api.RoleAssignment+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignment', + '$ref' => '#/components/schemas/RoleAssignmentWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/role_id/GET/RoleAssignment.json.example', ], - 'application/vnd.ibexa.api.RoleAssignment+json' => [ + 'application/vnd.ibexa.api.RoleAssignment+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentWrapper', + '$ref' => '#/components/schemas/RoleAssignment', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/role_id/GET/RoleAssignment.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleAssignmentForUserListController.php b/src/lib/Server/Controller/Role/RoleAssignmentForUserListController.php index 41ec462e4..7d022c9e1 100644 --- a/src/lib/Server/Controller/Role/RoleAssignmentForUserListController.php +++ b/src/lib/Server/Controller/Role/RoleAssignmentForUserListController.php @@ -17,21 +17,13 @@ uriTemplate: '/user/users/{userId}/roles', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.load_role_assignments_for_user', summary: 'Load Roles for User', description: 'Returns a list of all Roles assigned to the given User.', tags: [ 'User', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Role assignment list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'userId', in: 'path', @@ -43,18 +35,19 @@ ], responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the Role assignment list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentList', + '$ref' => '#/components/schemas/RoleAssignmentListWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignmentList.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/GET/RoleAssignmentList.json.example', ], - 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentListWrapper', + '$ref' => '#/components/schemas/RoleAssignmentList', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/GET/RoleAssignmentList.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleAssignmentForUserLoadByIdController.php b/src/lib/Server/Controller/Role/RoleAssignmentForUserLoadByIdController.php index f47a97264..28f3276f5 100644 --- a/src/lib/Server/Controller/Role/RoleAssignmentForUserLoadByIdController.php +++ b/src/lib/Server/Controller/Role/RoleAssignmentForUserLoadByIdController.php @@ -19,21 +19,13 @@ uriTemplate: '/user/users/{userId}/roles/{roleId}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.load_role_assignment_for_user', summary: 'Load User Role Assignment', description: 'Returns a Role assignment to the given User.', tags: [ 'User', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Role assignment list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'userId', in: 'path', @@ -55,18 +47,18 @@ Response::HTTP_OK => [ 'description' => 'OK - Role assignment to the given User Group.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignment+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignment', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.xml.example', - ], 'application/vnd.ibexa.api.RoleAssignment+json' => [ 'schema' => [ '$ref' => '#/components/schemas/RoleAssignmentWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.json.example', ], + 'application/vnd.ibexa.api.RoleAssignment+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/RoleAssignment', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.xml.example', + ], ], ], Response::HTTP_UNAUTHORIZED => [ diff --git a/src/lib/Server/Controller/Role/RoleCreateController.php b/src/lib/Server/Controller/Role/RoleCreateController.php index fdfd5a650..c6ea1fa90 100644 --- a/src/lib/Server/Controller/Role/RoleCreateController.php +++ b/src/lib/Server/Controller/Role/RoleCreateController.php @@ -28,6 +28,7 @@ uriTemplate: '/user/roles', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.create_role', summary: 'Create Role or Role draft', description: 'Creates a new Role or Role draft.', tags: [ @@ -35,54 +36,47 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the new user is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'The RoleInput schema encoded in XML or JSON.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], ), ], requestBody: new Model\RequestBody( + description: 'The RoleInput schema encoded in XML or JSON.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.RoleInput+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/RoleInput', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.xml.example', - ], 'application/vnd.ibexa.api.RoleInput+json' => [ 'schema' => [ '$ref' => '#/components/schemas/RoleInputWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.json.example', ], + 'application/vnd.ibexa.api.RoleInput+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/RoleInput', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.xml.example', + ], ]), ), responses: [ Response::HTTP_CREATED => [ + 'description' => 'If set, the new user is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.Role+xml' => [ + 'application/vnd.ibexa.api.Role+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/Role', + '$ref' => '#/components/schemas/RoleWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/Role.json.example', ], - 'application/vnd.ibexa.api.Role+json' => [ + 'application/vnd.ibexa.api.Role+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleWrapper', + '$ref' => '#/components/schemas/Role', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/Role.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleDeleteController.php b/src/lib/Server/Controller/Role/RoleDeleteController.php index 3982a0a17..09d1eca2d 100644 --- a/src/lib/Server/Controller/Role/RoleDeleteController.php +++ b/src/lib/Server/Controller/Role/RoleDeleteController.php @@ -17,12 +17,22 @@ uriTemplate: '/user/roles/{id}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.delete_role', summary: 'Delete Role', description: 'The given Role and all assignments to Users or User Groups are deleted.', tags: [ 'User Role', ], parameters: [ + new Model\Parameter( + name: 'X-CSRF-Token', + in: 'header', + required: true, + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', + schema: [ + 'type' => 'string', + ], + ), new Model\Parameter( name: 'id', in: 'path', diff --git a/src/lib/Server/Controller/Role/RoleDraftCreateController.php b/src/lib/Server/Controller/Role/RoleDraftCreateController.php index 74227da30..a2a98c696 100644 --- a/src/lib/Server/Controller/Role/RoleDraftCreateController.php +++ b/src/lib/Server/Controller/Role/RoleDraftCreateController.php @@ -23,6 +23,7 @@ uriTemplate: '/user/roles/{id}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.create_role_draft', summary: 'Create Role Draft', description: 'Creates a new Role draft from an existing Role.', tags: [ @@ -30,19 +31,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the new user is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'The RoleInput schema encoded in XML or JSON.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -56,20 +48,25 @@ ], ), ], + requestBody: new Model\RequestBody( + description: 'No payload required', + content: new \ArrayObject(), + ), responses: [ Response::HTTP_CREATED => [ + 'description' => 'If set, the new user is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleDraft+xml' => [ + 'application/vnd.ibexa.api.RoleDraft+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleDraft', + '$ref' => '#/components/schemas/RoleDraftWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/POST/RoleDraft.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/POST/RoleDraft.json.example', ], - 'application/vnd.ibexa.api.RoleDraft+json' => [ + 'application/vnd.ibexa.api.RoleDraft+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleDraftWrapper', + '$ref' => '#/components/schemas/RoleDraft', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/POST/RoleDraft.xml.example', ], ], ], @@ -77,9 +74,6 @@ 'description' => 'Error - the user is not authorized to create a Role or a Role draft', ], ], - requestBody: new Model\RequestBody( - content: new \ArrayObject(), - ), ), )] class RoleDraftCreateController extends RoleBaseController diff --git a/src/lib/Server/Controller/Role/RoleDraftDeleteController.php b/src/lib/Server/Controller/Role/RoleDraftDeleteController.php index da81bd2e6..a128c2aac 100644 --- a/src/lib/Server/Controller/Role/RoleDraftDeleteController.php +++ b/src/lib/Server/Controller/Role/RoleDraftDeleteController.php @@ -17,12 +17,22 @@ uriTemplate: '/user/roles/{id}/draft', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.delete_role_draft', summary: 'Delete Role draft', description: 'The given Role draft is deleted.', tags: [ 'User Role', ], parameters: [ + new Model\Parameter( + name: 'X-CSRF-Token', + in: 'header', + required: true, + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', + schema: [ + 'type' => 'string', + ], + ), new Model\Parameter( name: 'id', in: 'path', diff --git a/src/lib/Server/Controller/Role/RoleDraftLoadByRoleIdController.php b/src/lib/Server/Controller/Role/RoleDraftLoadByRoleIdController.php index 12ad7ab47..bb51da8be 100644 --- a/src/lib/Server/Controller/Role/RoleDraftLoadByRoleIdController.php +++ b/src/lib/Server/Controller/Role/RoleDraftLoadByRoleIdController.php @@ -16,25 +16,17 @@ #[Get( uriTemplate: '/user/roles/{id}/draft', openapi: new Model\Operation( + operationId: 'ibexa.rest.load_role_draft', summary: 'Load Role draft', description: 'Loads a Role draft by original Role ID.', tags: [ 'User Role', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the User list returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'If-None-Match', in: 'header', - required: true, + required: false, description: 'ETag', schema: [ 'type' => 'string', @@ -53,17 +45,17 @@ Response::HTTP_OK => [ 'description' => 'OK - Role draft by original Role ID.', 'content' => [ - 'application/vnd.ibexa.api.Role+xml' => [ + 'application/vnd.ibexa.api.Role+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/Role', + '$ref' => '#/components/schemas/RoleWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/GET/Role.json.example', ], - 'application/vnd.ibexa.api.Role+json' => [ + 'application/vnd.ibexa.api.Role+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleWrapper', + '$ref' => '#/components/schemas/Role', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/GET/Role.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleDraftUpdateController.php b/src/lib/Server/Controller/Role/RoleDraftUpdateController.php index 6f6272ca8..9cf2006b9 100644 --- a/src/lib/Server/Controller/Role/RoleDraftUpdateController.php +++ b/src/lib/Server/Controller/Role/RoleDraftUpdateController.php @@ -20,6 +20,7 @@ uriTemplate: '/user/roles/{id}/draft', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.update_role_draft', summary: 'Update Role draft', description: 'Updates a Role draft. PATCH or POST with header X-HTTP-Method-Override PATCH.', tags: [ @@ -27,19 +28,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Role is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'The RoleInput schema encoded in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -63,18 +55,19 @@ ), ], requestBody: new Model\RequestBody( + description: 'The RoleInput schema encoded in XML or JSON format.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.RoleInput+xml' => [ + 'application/vnd.ibexa.api.RoleInput+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleInput', + '$ref' => '#/components/schemas/RoleInputWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/RoleInput.json.example', ], - 'application/vnd.ibexa.api.RoleInput+json' => [ + 'application/vnd.ibexa.api.RoleInput+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleInputWrapper', + '$ref' => '#/components/schemas/RoleInput', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/RoleInput.xml.example', ], ]), ), @@ -82,18 +75,18 @@ Response::HTTP_OK => [ 'description' => 'OK - Role draft updated.', 'content' => [ - 'application/vnd.ibexa.api.Role+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/Role', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.xml.example', - ], 'application/vnd.ibexa.api.Role+json' => [ 'schema' => [ '$ref' => '#/components/schemas/RoleWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.json.example', ], + 'application/vnd.ibexa.api.Role+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/Role', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.xml.example', + ], ], ], Response::HTTP_BAD_REQUEST => [ diff --git a/src/lib/Server/Controller/Role/RoleListController.php b/src/lib/Server/Controller/Role/RoleListController.php index 2730717ac..da7baa936 100644 --- a/src/lib/Server/Controller/Role/RoleListController.php +++ b/src/lib/Server/Controller/Role/RoleListController.php @@ -19,38 +19,28 @@ uriTemplate: '/user/roles', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.list_roles', summary: 'Load Roles', description: 'Returns a list of all Roles.', tags: [ 'User Role', ], - parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the user list returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - ], responses: [ Response::HTTP_OK => [ 'description' => 'OK - list of all Roles.', 'content' => [ - 'application/vnd.ibexa.api.RoleList+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/RoleList', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/GET/RoleList.xml.example', - ], 'application/vnd.ibexa.api.RoleList+json' => [ 'schema' => [ '$ref' => '#/components/schemas/RoleListWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/GET/RoleList.json.example', ], + 'application/vnd.ibexa.api.RoleList+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/RoleList', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/GET/RoleList.xml.example', + ], ], ], Response::HTTP_UNAUTHORIZED => [ diff --git a/src/lib/Server/Controller/Role/RoleLoadByIdController.php b/src/lib/Server/Controller/Role/RoleLoadByIdController.php index a691b5cfc..a83c266d8 100644 --- a/src/lib/Server/Controller/Role/RoleLoadByIdController.php +++ b/src/lib/Server/Controller/Role/RoleLoadByIdController.php @@ -15,25 +15,17 @@ #[Get( uriTemplate: '/user/roles/{id}', openapi: new Model\Operation( + operationId: 'ibexa.rest.load_role', summary: 'Load Role', description: 'Loads a Role for the given ID.', tags: [ 'User Role', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the user list returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'If-None-Match', in: 'header', - required: true, + required: false, description: 'ETag', schema: [ 'type' => 'string', @@ -52,17 +44,17 @@ Response::HTTP_OK => [ 'description' => 'OK - Role for the given ID.', 'content' => [ - 'application/vnd.ibexa.api.Role+xml' => [ + 'application/vnd.ibexa.api.Role+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/Role', + '$ref' => '#/components/schemas/RoleWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/GET/Role.json.example', ], - 'application/vnd.ibexa.api.Role+json' => [ + 'application/vnd.ibexa.api.Role+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleWrapper', + '$ref' => '#/components/schemas/Role', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/GET/Role.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RolePoliciesForUserListController.php b/src/lib/Server/Controller/Role/RolePoliciesForUserListController.php index 30694411d..be367c1f4 100644 --- a/src/lib/Server/Controller/Role/RolePoliciesForUserListController.php +++ b/src/lib/Server/Controller/Role/RolePoliciesForUserListController.php @@ -18,37 +18,27 @@ uriTemplate: '/user/policies', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.list_policies_for_user', summary: 'List Policies for User', description: 'Search all Policies which are applied to a given User.', tags: [ 'User Policy', ], - parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Policy list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - ], responses: [ Response::HTTP_OK => [ 'description' => 'OK - Policies which are applied to a given User.', 'content' => [ - 'application/vnd.ibexa.api.PolicyList+xml' => [ + 'application/vnd.ibexa.api.PolicyList+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/PolicyList', + '$ref' => '#/components/schemas/PolicyListWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/GET/PolicyList.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/policies/GET/PolicyList.json.example', ], - 'application/vnd.ibexa.api.PolicyList+json' => [ + 'application/vnd.ibexa.api.PolicyList+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/PolicyListWrapper', + '$ref' => '#/components/schemas/PolicyList', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/GET/PolicyList.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/policies/GET/PolicyList.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RolePolicyCreateController.php b/src/lib/Server/Controller/Role/RolePolicyCreateController.php index d3a609bed..6ae3026ad 100644 --- a/src/lib/Server/Controller/Role/RolePolicyCreateController.php +++ b/src/lib/Server/Controller/Role/RolePolicyCreateController.php @@ -22,6 +22,7 @@ uriTemplate: '/user/roles/{id}/policies', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.add_policy', summary: 'Create Policy', description: 'Creates a Policy', tags: [ @@ -29,19 +30,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Policy is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'If set, the updated Policy is returned in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -56,35 +48,37 @@ ), ], requestBody: new Model\RequestBody( + description: 'If set, the updated Policy is returned in XML or JSON format.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.PolicyCreate+xml' => [ + 'application/vnd.ibexa.api.PolicyCreate+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/PolicyCreate', + '$ref' => '#/components/schemas/PolicyCreateWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/POST/PolicyCreate.xml.example', ], - 'application/vnd.ibexa.api.PolicyCreate+json' => [ + 'application/vnd.ibexa.api.PolicyCreate+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/PolicyCreateWrapper', + '$ref' => '#/components/schemas/PolicyCreate', ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/POST/PolicyCreate.xml.example', ], ]), ), responses: [ Response::HTTP_CREATED => [ + 'description' => 'If set, the updated Policy is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.Policy+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/Policy', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/PATCH/Policy.xml.example', - ], 'application/vnd.ibexa.api.Policy+json' => [ 'schema' => [ '$ref' => '#/components/schemas/PolicyWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/GET/Policy.json.example', ], + 'application/vnd.ibexa.api.Policy+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/Policy', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/POST/Policy.xml.example', + ], ], ], Response::HTTP_BAD_REQUEST => [ diff --git a/src/lib/Server/Controller/Role/RolePolicyDeleteAllFromRoleController.php b/src/lib/Server/Controller/Role/RolePolicyDeleteAllFromRoleController.php index b71dad108..37933bf69 100644 --- a/src/lib/Server/Controller/Role/RolePolicyDeleteAllFromRoleController.php +++ b/src/lib/Server/Controller/Role/RolePolicyDeleteAllFromRoleController.php @@ -17,12 +17,22 @@ uriTemplate: '/user/roles/{id}/policies', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.delete_policies', summary: 'Delete Policies', description: 'All Policies of the given Role are deleted.', tags: [ 'User Role', ], parameters: [ + new Model\Parameter( + name: 'X-CSRF-Token', + in: 'header', + required: true, + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', + schema: [ + 'type' => 'string', + ], + ), new Model\Parameter( name: 'id', in: 'path', diff --git a/src/lib/Server/Controller/Role/RolePolicyDeleteController.php b/src/lib/Server/Controller/Role/RolePolicyDeleteController.php index 6f4be4d58..f81ca3f3f 100644 --- a/src/lib/Server/Controller/Role/RolePolicyDeleteController.php +++ b/src/lib/Server/Controller/Role/RolePolicyDeleteController.php @@ -19,12 +19,22 @@ #[Delete( uriTemplate: '/user/roles/{roleId}/policies/{policyId}', openapi: new Model\Operation( + operationId: 'ibexa.rest.delete_policy', summary: 'Delete Policy', description: 'Deletes given Policy.', tags: [ 'User Role', ], parameters: [ + new Model\Parameter( + name: 'X-CSRF-Token', + in: 'header', + required: true, + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', + schema: [ + 'type' => 'string', + ], + ), new Model\Parameter( name: 'policyId', in: 'path', diff --git a/src/lib/Server/Controller/Role/RolePolicyListController.php b/src/lib/Server/Controller/Role/RolePolicyListController.php index ba56bad25..5aafbd44d 100644 --- a/src/lib/Server/Controller/Role/RolePolicyListController.php +++ b/src/lib/Server/Controller/Role/RolePolicyListController.php @@ -16,21 +16,13 @@ #[Get( uriTemplate: '/user/roles/{id}/policies', openapi: new Model\Operation( + operationId: 'ibexa.rest.load_policies', summary: 'Load Policies', description: 'Loads Policies for the given Role.', tags: [ 'User Role', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Policy list is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'id', in: 'path', @@ -42,19 +34,20 @@ ], responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the Policy list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.PolicyList+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/PolicyList', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/GET/PolicyList.xml.example', - ], 'application/vnd.ibexa.api.PolicyList+json' => [ 'schema' => [ '$ref' => '#/components/schemas/PolicyListWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/GET/PolicyList.json.example', ], + 'application/vnd.ibexa.api.PolicyList+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/PolicyList', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/GET/PolicyList.xml.example', + ], ], ], Response::HTTP_UNAUTHORIZED => [ diff --git a/src/lib/Server/Controller/Role/RolePolicyLoadByIdController.php b/src/lib/Server/Controller/Role/RolePolicyLoadByIdController.php index b1f4bd7fa..98aee5a7a 100644 --- a/src/lib/Server/Controller/Role/RolePolicyLoadByIdController.php +++ b/src/lib/Server/Controller/Role/RolePolicyLoadByIdController.php @@ -17,25 +17,17 @@ #[Get( uriTemplate: '/user/roles/{roleId}/policies/{policyId}', openapi: new Model\Operation( + operationId: 'ibexa.rest.load_policy', summary: 'Load Policy', description: 'Loads a Policy for the given module and function.', tags: [ 'User Role', ], parameters: [ - new Model\Parameter( - name: 'Accept', - in: 'header', - required: true, - description: 'If set, the Policy is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), new Model\Parameter( name: 'If-None-Match', in: 'header', - required: true, + required: false, description: 'ETag', schema: [ 'type' => 'string', @@ -52,19 +44,20 @@ ], responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the Policy is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.Policy+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/Policy', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/PATCH/Policy.xml.example', - ], 'application/vnd.ibexa.api.Policy+json' => [ 'schema' => [ '$ref' => '#/components/schemas/PolicyWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/GET/Policy.json.example', ], + 'application/vnd.ibexa.api.Policy+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/Policy', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/GET/Policy.xml.example', + ], ], ], Response::HTTP_UNAUTHORIZED => [ diff --git a/src/lib/Server/Controller/Role/RolePolicyUpdateController.php b/src/lib/Server/Controller/Role/RolePolicyUpdateController.php index 05ef62cd5..55def0d5a 100644 --- a/src/lib/Server/Controller/Role/RolePolicyUpdateController.php +++ b/src/lib/Server/Controller/Role/RolePolicyUpdateController.php @@ -24,6 +24,7 @@ uriTemplate: '/user/roles/{roleId}/policies/{policyId}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.update_policy', summary: 'Update Policy', description: 'Updates a Policy. PATCH or POST with header X-HTTP-Method-Override PATCH.', tags: [ @@ -31,19 +32,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Policy is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'If set, the updated Policy is returned in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -67,35 +59,37 @@ ), ], requestBody: new Model\RequestBody( + description: 'If set, the updated Policy is returned in XML or JSON format.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.PolicyUpdate+xml' => [ + 'application/vnd.ibexa.api.PolicyUpdate+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/PolicyUpdate', + '$ref' => '#/components/schemas/PolicyUpdateWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/PATCH/PolicyUpdate.xml.example', ], - 'application/vnd.ibexa.api.PolicyUpdate+json' => [ + 'application/vnd.ibexa.api.PolicyUpdate+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/PolicyUpdateWrapper', + '$ref' => '#/components/schemas/PolicyUpdate', ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/PATCH/PolicyUpdate.xml.example', ], ]), ), responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the updated Policy is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.Policy+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/Policy', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/PATCH/Policy.xml.example', - ], 'application/vnd.ibexa.api.Policy+json' => [ 'schema' => [ '$ref' => '#/components/schemas/PolicyWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/GET/Policy.json.example', ], + 'application/vnd.ibexa.api.Policy+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/Policy', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/policies/id/PATCH/Policy.xml.example', + ], ], ], Response::HTTP_BAD_REQUEST => [ diff --git a/src/lib/Server/Controller/Role/RoleUnassignFromUserController.php b/src/lib/Server/Controller/Role/RoleUnassignFromUserController.php index ee21b40ba..4c228b481 100644 --- a/src/lib/Server/Controller/Role/RoleUnassignFromUserController.php +++ b/src/lib/Server/Controller/Role/RoleUnassignFromUserController.php @@ -17,6 +17,7 @@ uriTemplate: '/user/users/{userId}/roles/{roleId}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.unassign_role_from_user', summary: 'Unassign Role from User', description: 'The given Role is removed from the user.', tags: [ @@ -24,10 +25,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Role assignment list is returned in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -51,19 +52,20 @@ ], responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the updated Role assignment list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ - 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentList', - ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/POST/RoleAssignmentList.xml.example', - ], 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ 'schema' => [ '$ref' => '#/components/schemas/RoleAssignmentListWrapper', ], 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.json.example', ], + 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ + 'schema' => [ + '$ref' => '#/components/schemas/RoleAssignmentList', + ], + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.xml.example', + ], ], ], Response::HTTP_UNAUTHORIZED => [ diff --git a/src/lib/Server/Controller/Role/RoleUnassignFromUserGroupController.php b/src/lib/Server/Controller/Role/RoleUnassignFromUserGroupController.php index 062ac9534..f23594681 100644 --- a/src/lib/Server/Controller/Role/RoleUnassignFromUserGroupController.php +++ b/src/lib/Server/Controller/Role/RoleUnassignFromUserGroupController.php @@ -17,6 +17,7 @@ uriTemplate: '/user/groups/{path}/roles/{roleId}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.unassign_role_from_user_group', summary: 'Unassign Role from User Group', description: 'The given Role is removed from the User or User Group.', tags: [ @@ -24,10 +25,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the updated Role assignment list is returned in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -51,18 +52,19 @@ ], responses: [ Response::HTTP_OK => [ + 'description' => 'If set, the updated Role assignment list is returned in XML or JSON format.', 'content' => [ - 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentList', + '$ref' => '#/components/schemas/RoleAssignmentListWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/GET/RoleAssignment.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/role_id/DELETE/RoleAssignmentList.json.example', ], - 'application/vnd.ibexa.api.RoleAssignmentList+json' => [ + 'application/vnd.ibexa.api.RoleAssignmentList+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleAssignmentListWrapper', + '$ref' => '#/components/schemas/RoleAssignmentList', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/users/user_id/roles/role_id/DELETE/RoleAssignmentList.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/groups/path/roles/role_id/DELETE/RoleAssignmentList.xml.example', ], ], ], diff --git a/src/lib/Server/Controller/Role/RoleUpdateController.php b/src/lib/Server/Controller/Role/RoleUpdateController.php index 6e5a66e6d..d315db239 100644 --- a/src/lib/Server/Controller/Role/RoleUpdateController.php +++ b/src/lib/Server/Controller/Role/RoleUpdateController.php @@ -19,6 +19,7 @@ uriTemplate: '/user/roles/{id}', extraProperties: [OpenApiFactory::OVERRIDE_OPENAPI_RESPONSES => false], openapi: new Model\Operation( + operationId: 'ibexa.rest.update_role', summary: 'Update Role', description: 'Updates a Role. PATCH or POST with header X-HTTP-Method-Override PATCH', tags: [ @@ -26,19 +27,10 @@ ], parameters: [ new Model\Parameter( - name: 'Accept', + name: 'X-CSRF-Token', in: 'header', required: true, - description: 'If set, the new user is returned in XML or JSON format.', - schema: [ - 'type' => 'string', - ], - ), - new Model\Parameter( - name: 'Content-Type', - in: 'header', - required: true, - description: 'The RoleInput schema encoded in XML or JSON format.', + description: 'The CSRF Token needed on all unsafe HTTP methods with session.', schema: [ 'type' => 'string', ], @@ -62,18 +54,19 @@ ), ], requestBody: new Model\RequestBody( + description: 'The RoleInput schema encoded in XML or JSON format.', content: new \ArrayObject([ - 'application/vnd.ibexa.api.RoleInput+xml' => [ + 'application/vnd.ibexa.api.RoleInput+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleInput', + '$ref' => '#/components/schemas/RoleInputWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/PATCH/RoleInput.json.example', ], - 'application/vnd.ibexa.api.RoleInput+json' => [ + 'application/vnd.ibexa.api.RoleInput+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleInputWrapper', + '$ref' => '#/components/schemas/RoleInput', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/POST/RoleInput.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/PATCH/RoleInput.xml.example', ], ]), ), @@ -81,17 +74,17 @@ Response::HTTP_OK => [ 'description' => 'OK - Role updated', 'content' => [ - 'application/vnd.ibexa.api.Role+xml' => [ + 'application/vnd.ibexa.api.Role+json' => [ 'schema' => [ - '$ref' => '#/components/schemas/Role', + '$ref' => '#/components/schemas/RoleWrapper', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.xml.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/PATCH/Role.json.example', ], - 'application/vnd.ibexa.api.Role+json' => [ + 'application/vnd.ibexa.api.Role+xml' => [ 'schema' => [ - '$ref' => '#/components/schemas/RoleWrapper', + '$ref' => '#/components/schemas/Role', ], - 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/draft/PATCH/Role.json.example', + 'x-ibexa-example-file' => '@IbexaRestBundle/Resources/api_platform/examples/user/roles/id/PATCH/Role.xml.example', ], ], ],