![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/CoreBundle/Twig/Helper/ |
<?php namespace Mautic\CoreBundle\Twig\Helper; use Mautic\CoreBundle\Security\Permissions\CorePermissions; use Mautic\UserBundle\Entity\User; use Mautic\UserBundle\Event\AuthenticationContentEvent; use Mautic\UserBundle\UserEvents; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface; /** * final class SecurityHelper. */ final class SecurityHelper { public function __construct( private CorePermissions $security, private RequestStack $requestStack, private EventDispatcherInterface $dispatcher, private CsrfTokenManagerInterface $tokenManager ) { } public function getName(): string { return 'security'; } /** * Helper function to check if user is an Admin. */ public function isAdmin(): bool { return $this->security->isAdmin(); } /** * 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->security->hasEntityAccess($ownPermission, $otherPermission, $ownerId); } /** * @param string[]|string $permission * * @return mixed */ public function isGranted($permission) { return $this->security->isGranted($permission); } /** * Get content from listeners. */ public function getAuthenticationContent(): string { $request = $this->requestStack->getCurrentRequest(); $content = ''; if ($this->dispatcher->hasListeners(UserEvents::USER_AUTHENTICATION_CONTENT)) { $event = new AuthenticationContentEvent($request); $this->dispatcher->dispatch($event, UserEvents::USER_AUTHENTICATION_CONTENT); $content = $event->getContent(); // Remove post_logout session after content has been generated $request->getSession()->remove('post_logout'); } return $content; } /** * Returns CSRF token string for an intention. * * @param string $intention * * @return string */ public function getCsrfToken($intention) { return $this->tokenManager->getToken($intention)->getValue(); } }