Spaces:
No application file
No application file
File size: 1,613 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
<?php
declare(strict_types=1);
namespace Mautic\CoreBundle\Twig\Extension;
use Mautic\CoreBundle\Twig\Helper\SecurityHelper;
use Mautic\UserBundle\Entity\User;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class SecurityExtension extends AbstractExtension
{
public function __construct(
private SecurityHelper $securityHelper
) {
}
public function getFunctions()
{
return [
new TwigFunction('securityGetAuthenticationContext', [$this, 'getContext']),
new TwigFunction('securityGetCsrfToken', [$this, 'getCsrfToken']),
new TwigFunction('securityHasEntityAccess', [$this, 'hasEntityAccess']),
new TwigFunction('securityIsGranted', [$this, 'isGranted']),
];
}
public function getContext(): string
{
return $this->securityHelper->getAuthenticationContent();
}
public function getCsrfToken(string $intention): string
{
return $this->securityHelper->getCsrfToken($intention);
}
/**
* Helper function to check if the logged in user has access to an entity.
*
* @param string|bool $ownPermission
* @param string|bool $otherPermission
* @param User|int $ownerId
*/
public function hasEntityAccess($ownPermission, $otherPermission, $ownerId): bool
{
return $this->securityHelper->hasEntityAccess($ownPermission, $otherPermission, $ownerId);
}
/**
* @return mixed
*/
public function isGranted(string $permission)
{
return $this->securityHelper->isGranted($permission);
}
}
|