From 099d2f9cef27ba6554b707e61ec10c6f5794d114 Mon Sep 17 00:00:00 2001 From: Ibar Vilches Date: Thu, 9 Jan 2025 17:41:04 -0300 Subject: [PATCH] fix: correct the acl definition, correct navigation yml, remove unused functions in repository --- .../Frontend/FavoriteController.php | 4 +-- .../Bundle/FavoriteBundle/Entity/Favorite.php | 2 +- .../Entity/Repository/FavoriteRepository.php | 35 +------------------ ...rontendProductFavoriteDatagridListener.php | 4 --- .../Resources/config/oro/navigation.yml | 2 +- 5 files changed, 5 insertions(+), 42 deletions(-) diff --git a/src/Synolia/Bundle/FavoriteBundle/Controller/Frontend/FavoriteController.php b/src/Synolia/Bundle/FavoriteBundle/Controller/Frontend/FavoriteController.php index dc99821..a361465 100644 --- a/src/Synolia/Bundle/FavoriteBundle/Controller/Frontend/FavoriteController.php +++ b/src/Synolia/Bundle/FavoriteBundle/Controller/Frontend/FavoriteController.php @@ -17,9 +17,9 @@ class FavoriteController extends AbstractController #[Acl( id: 'synolia_favorite_frontend_view', type: 'entity', - class: 'SynoliaFavoriteBundle\Entity\Favorite', + class: Favorite::class, permission: 'VIEW', - group_name: 'commerce' + groupName: 'commerce' )] public function indexAction(): array { diff --git a/src/Synolia/Bundle/FavoriteBundle/Entity/Favorite.php b/src/Synolia/Bundle/FavoriteBundle/Entity/Favorite.php index 81f2718..c26c7df 100644 --- a/src/Synolia/Bundle/FavoriteBundle/Entity/Favorite.php +++ b/src/Synolia/Bundle/FavoriteBundle/Entity/Favorite.php @@ -21,7 +21,7 @@ 'ownership' => [ 'organization_field_name' => 'organization', 'organization_column_name' => 'organization_id', - 'frontend_owner_type' => 'FRONTEND_USER', + 'frontend_owner_type' => 'FRONTEND_CUSTOMER', 'frontend_owner_field_name' => 'customerUser', 'frontend_owner_column_name' => 'customer_user_id', ], 'security' => [ diff --git a/src/Synolia/Bundle/FavoriteBundle/Entity/Repository/FavoriteRepository.php b/src/Synolia/Bundle/FavoriteBundle/Entity/Repository/FavoriteRepository.php index c79c102..5887547 100644 --- a/src/Synolia/Bundle/FavoriteBundle/Entity/Repository/FavoriteRepository.php +++ b/src/Synolia/Bundle/FavoriteBundle/Entity/Repository/FavoriteRepository.php @@ -5,48 +5,15 @@ namespace Synolia\Bundle\FavoriteBundle\Entity\Repository; use Doctrine\ORM\EntityRepository; -use Oro\Bundle\CustomerBundle\Entity\CustomerUser; -use Oro\Bundle\OrganizationBundle\Entity\Organization; use Oro\Bundle\SecurityBundle\ORM\Walker\AclHelper; use Synolia\Bundle\FavoriteBundle\Entity\Favorite; class FavoriteRepository extends EntityRepository { - public function findAllFilteredByAcl(AclHelper $aclHelper): array - { - return $aclHelper->apply($this->createQueryBuilder('f'))->getResult(); - } - - public function getFavoritesProductsCollection(CustomerUser $user, Organization $organization): array - { - return $this->createQueryBuilder('f') - ->resetDQLPart('select') - ->addSelect('IDENTITY(f.product) as product_id') - ->andWhere('f.customerUser = :user') - ->andWhere('f.organization = :organization') - ->setParameters([ - 'user' => $user, - 'organization' => $organization, - ]) - ->getQuery()->getArrayResult(); - } - - public function getFavoritesProductsInSingleArray(CustomerUser $user, Organization $organization): array - { - $newArray = []; - $favorites = $this->getFavoritesProductsCollection($user, $organization); - - foreach ($favorites as $favorite) { - $newArray[] = $favorite['product_id']; - } - - return $newArray; - } - public function findAllProductIdsFilteredByAcl(AclHelper $aclHelper): array { $ids = []; - $favorites = $this->findAllFilteredByAcl($aclHelper); + $favorites = $aclHelper->apply($this->createQueryBuilder('f'))->getResult(); /** @var Favorite $favorite */ foreach ($favorites as $favorite) { diff --git a/src/Synolia/Bundle/FavoriteBundle/EventListener/FrontendProductFavoriteDatagridListener.php b/src/Synolia/Bundle/FavoriteBundle/EventListener/FrontendProductFavoriteDatagridListener.php index b7334f0..b446cc9 100644 --- a/src/Synolia/Bundle/FavoriteBundle/EventListener/FrontendProductFavoriteDatagridListener.php +++ b/src/Synolia/Bundle/FavoriteBundle/EventListener/FrontendProductFavoriteDatagridListener.php @@ -45,10 +45,6 @@ public function onResultAfter(SearchResultAfter $event): void return; } - if (!$this->security->isGranted('IS_AUTHENTICATED_FULLY')) { - return; - } - /** @var FavoriteRepository $favoriteRepo */ $favoriteRepo = $this->entityManager->getRepository(Favorite::class); $favProductIds = $favoriteRepo->findAllProductIdsFilteredByAcl($this->aclHelper); diff --git a/src/Synolia/Bundle/FavoriteBundle/Resources/config/oro/navigation.yml b/src/Synolia/Bundle/FavoriteBundle/Resources/config/oro/navigation.yml index c3e232f..9da2988 100644 --- a/src/Synolia/Bundle/FavoriteBundle/Resources/config/oro/navigation.yml +++ b/src/Synolia/Bundle/FavoriteBundle/Resources/config/oro/navigation.yml @@ -16,7 +16,7 @@ navigation: children: synolia_favorite_index: ~ oro_customer_menu_refreshing_teal: - scope_type: menu_fronend_visibility + scope_type: menu_frontend_visibility children: oro_customer_frontend_customer_user_profiles_and_addresses: children: