diff --git a/src/Akeneo/UserManagement/Bundle/Controller/RoleController.php b/src/Akeneo/UserManagement/Bundle/Controller/RoleController.php index 524fa3106f3b..196ad0a46ae1 100644 --- a/src/Akeneo/UserManagement/Bundle/Controller/RoleController.php +++ b/src/Akeneo/UserManagement/Bundle/Controller/RoleController.php @@ -2,9 +2,10 @@ namespace Akeneo\UserManagement\Bundle\Controller; +use Akeneo\Tool\Component\StorageUtils\Factory\SimpleFactoryInterface; use Akeneo\Tool\Component\StorageUtils\Remover\RemoverInterface; use Akeneo\UserManagement\Bundle\Form\Handler\AclRoleHandler; -use Akeneo\UserManagement\Component\Model\Role; +use Akeneo\UserManagement\Component\Model\RoleInterface; use Akeneo\UserManagement\Component\Repository\RoleRepositoryInterface; use Akeneo\UserManagement\Domain\Permissions\Query\EditRolePermissionsRoleQuery; use Oro\Bundle\SecurityBundle\Acl\Persistence\AclSidManager; @@ -26,6 +27,7 @@ public function __construct( private readonly AclRoleHandler $aclRoleHandler, private readonly TranslatorInterface $translator, private readonly EditRolePermissionsRoleQuery $editRolePermissionsRoleQuery, + private readonly SimpleFactoryInterface $roleFactory, ) { } @@ -34,7 +36,7 @@ public function __construct( */ public function create(): Response { - $newRole = new Role(); + $newRole = $this->roleFactory->create(); return $this->updateRole($newRole); } @@ -86,7 +88,7 @@ public function delete(Request $request, $id): Response return new JsonResponse('', 204); } - private function updateRole(Role $role): Response + protected function updateRole(RoleInterface $role): Response { $this->aclRoleHandler->createForm($role); diff --git a/src/Akeneo/UserManagement/Bundle/Resources/config/controllers.yml b/src/Akeneo/UserManagement/Bundle/Resources/config/controllers.yml index f95f18c01ec3..3eab36e091d6 100644 --- a/src/Akeneo/UserManagement/Bundle/Resources/config/controllers.yml +++ b/src/Akeneo/UserManagement/Bundle/Resources/config/controllers.yml @@ -2,6 +2,7 @@ parameters: pim_user.controller.user_rest.class: Akeneo\UserManagement\Bundle\Controller\Rest\UserController pim_user.controller.security_rest.class: Akeneo\UserManagement\Bundle\Controller\Rest\SecurityController pim_user.controller.user_group_rest.class: Akeneo\UserManagement\Bundle\Controller\Rest\UserGroupController + pim_user.controller.user_role.class: Akeneo\UserManagement\Bundle\Controller\RoleController services: pim_user.controller.user_rest: @@ -73,7 +74,7 @@ services: pim_user.controller.role: public: true - class: 'Akeneo\UserManagement\Bundle\Controller\RoleController' + class: '%pim_user.controller.user_role.class%' arguments: - '@pim_user.repository.role' - '@pim_user.remover.role' @@ -81,6 +82,7 @@ services: - '@pim_user.form.handler.acl_role' - '@translator' - '@Akeneo\UserManagement\Domain\Permissions\Query\EditRolePermissionsRoleQuery' + - '@pim_user.factory.role' calls: - [ 'setContainer', [ '@service_container' ] ]