vendor/symfony/security-core/Authorization/ExpressionLanguageProvider.php line 52

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\Security\Core\Authorization;
  11. use Symfony\Component\ExpressionLanguage\ExpressionFunction;
  12. use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface;
  13. use Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter;
  14. /**
  15.  * Define some ExpressionLanguage functions.
  16.  *
  17.  * @author Fabien Potencier <fabien@symfony.com>
  18.  */
  19. class ExpressionLanguageProvider implements ExpressionFunctionProviderInterface
  20. {
  21.     public function getFunctions()
  22.     {
  23.         return [
  24.             new ExpressionFunction('is_anonymous', function () {
  25.                 return 'trigger_deprecation("symfony/security-core", "5.4", "The \"is_anonymous()\" expression function is deprecated.") || ($token && $auth_checker->isGranted("IS_ANONYMOUS"))';
  26.             }, function (array $variables) {
  27.                 trigger_deprecation('symfony/security-core''5.4''The "is_anonymous()" expression function is deprecated.');
  28.                 return $variables['token'] && $variables['auth_checker']->isGranted('IS_ANONYMOUS');
  29.             }),
  30.             // @deprecated remove the ternary and always use IS_AUTHENTICATED in 6.0
  31.             new ExpressionFunction('is_authenticated', function () {
  32.                 return 'defined("'.AuthenticatedVoter::class.'::IS_AUTHENTICATED") ? $auth_checker->isGranted("IS_AUTHENTICATED") : ($token && !$auth_checker->isGranted("IS_ANONYMOUS"))';
  33.             }, function (array $variables) {
  34.                 return \defined(AuthenticatedVoter::class.'::IS_AUTHENTICATED') ? $variables['auth_checker']->isGranted('IS_AUTHENTICATED') : ($variables['token'] && !$variables['auth_checker']->isGranted('IS_ANONYMOUS'));
  35.             }),
  36.             new ExpressionFunction('is_fully_authenticated', function () {
  37.                 return '$token && $auth_checker->isGranted("IS_AUTHENTICATED_FULLY")';
  38.             }, function (array $variables) {
  39.                 return $variables['token'] && $variables['auth_checker']->isGranted('IS_AUTHENTICATED_FULLY');
  40.             }),
  41.             new ExpressionFunction('is_granted', function ($attributes$object 'null') {
  42.                 return sprintf('$auth_checker->isGranted(%s, %s)'$attributes$object);
  43.             }, function (array $variables$attributes$object null) {
  44.                 return $variables['auth_checker']->isGranted($attributes$object);
  45.             }),
  46.             new ExpressionFunction('is_remember_me', function () {
  47.                 return '$token && $auth_checker->isGranted("IS_REMEMBERED")';
  48.             }, function (array $variables) {
  49.                 return $variables['token'] && $variables['auth_checker']->isGranted('IS_REMEMBERED');
  50.             }),
  51.         ];
  52.     }
  53. }