Skip to content

Commit

Permalink
Merge pull request #2292 from dpfaffenbauer/issue/2290
Browse files Browse the repository at this point in the history
[MenuBundle] fix Pimcore 10.6 compatibility issue
  • Loading branch information
dpfaffenbauer committed May 24, 2023
2 parents 0234a0c + 4c5322f commit 64208d8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 3 deletions.
25 changes: 23 additions & 2 deletions src/CoreShop/Bundle/MenuBundle/Guard/PimcoreGuard.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@
use Knp\Menu\ItemInterface;
use Pimcore\Bundle\AdminBundle\Security\User\TokenStorageUserResolver;
use Pimcore\Model\User;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;

class PimcoreGuard
{
public function __construct(
private TokenStorageUserResolver $tokenStorageUserResolver,
private TokenStorageInterface $tokenStorage
) {
}

Expand All @@ -35,7 +36,27 @@ public function matchItem(ItemInterface $item): bool
return true;
}

$user = $this->tokenStorageUserResolver->getUser();
$token = $this->tokenStorage->getToken();

if (null === $token) {
return false;
}

$user = $token->getUser();

if (class_exists(\Pimcore\Security\User\User::class) && $user instanceof \Pimcore\Security\User\User) {
/**
* @psalm-suppress UndefinedClass, UndefinedInterfaceMethod
*/
$user = $user->getUser();
}

if (class_exists(\Pimcore\Bundle\AdminBundle\Security\User\User::class) && $user instanceof \Pimcore\Bundle\AdminBundle\Security\User\User) {
/**
* @psalm-suppress UndefinedClass, UndefinedInterfaceMethod
*/
$user = $user->getUser();
}

if ($user instanceof User) {
return $user->isAllowed((string) $item->getAttribute('permission'));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ services:

CoreShop\Bundle\MenuBundle\Guard\PimcoreGuard:
arguments:
- '@Pimcore\Bundle\AdminBundle\Security\User\TokenStorageUserResolver'
- '@security.token_storage'

coreshop.menu_provider.lazy_provider:
class: Knp\Menu\Provider\LazyProvider
Expand Down

0 comments on commit 64208d8

Please sign in to comment.