diff --git a/src/Authorization/AbstractAuthorizationService.php b/src/Authorization/AbstractAuthorizationService.php index a100ab66e82818d4b5ef5074fd15d5ce81ffb949..d89171c8cbd66957f31878f463b78d5be8689775 100644 --- a/src/Authorization/AbstractAuthorizationService.php +++ b/src/Authorization/AbstractAuthorizationService.php @@ -213,6 +213,7 @@ abstract class AbstractAuthorizationService implements ContextAwareNormalizerInt { $roleExpressions = []; foreach ($entitiesConfigNode as $entityShortName => $entityNode) { + dump($entityNode); $entityClassName = $entityNode[AuthorizationConfigDefinition::ENTITY_CLASS_NAME_CONFIG_NODE]; $attributeNames = []; diff --git a/src/ExpressionLanguage/ExpressionFunctionProviders/StringExpressionFunctionProvider.php b/src/ExpressionLanguage/ExpressionFunctionProviders/StringExpressionFunctionProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..58657853bf6b92bbd6c25785b72bda626d540465 --- /dev/null +++ b/src/ExpressionLanguage/ExpressionFunctionProviders/StringExpressionFunctionProvider.php @@ -0,0 +1,25 @@ +<?php + +declare(strict_types=1); + +namespace Dbp\Relay\CoreBundle\ExpressionLanguage\ExpressionFunctionProviders; + +use Dbp\Relay\CoreBundle\Helpers\Tools; +use Symfony\Component\ExpressionLanguage\ExpressionFunction; +use Symfony\Component\ExpressionLanguage\ExpressionFunctionProviderInterface; + +class StringExpressionFunctionProvider implements ExpressionFunctionProviderInterface +{ + public function getFunctions(): array + { + return [ + new ExpressionFunction('isNullOrEmpty', + function (string $varName): string { + return sprintf('isNullOrEmpty(%s)', $varName); + }, + function ($arguments, $varName): bool { + return Tools::isNullOrEmpty($varName); + }), + ]; + } +} diff --git a/src/ExpressionLanguage/ExpressionLanguage.php b/src/ExpressionLanguage/ExpressionLanguage.php index 9c776684b5e3816f8448009d013617d37dafee00..fe726473f7c9104557d2f6d81704d64342d79657 100644 --- a/src/ExpressionLanguage/ExpressionLanguage.php +++ b/src/ExpressionLanguage/ExpressionLanguage.php @@ -10,6 +10,7 @@ use Dbp\Relay\CoreBundle\ExpressionLanguage\ExpressionFunctionProviders\MapExpre use Dbp\Relay\CoreBundle\ExpressionLanguage\ExpressionFunctionProviders\PhpArrayExpressionFunctionProvider; use Dbp\Relay\CoreBundle\ExpressionLanguage\ExpressionFunctionProviders\PhpNumericExpressionFunctionProvider; use Dbp\Relay\CoreBundle\ExpressionLanguage\ExpressionFunctionProviders\PhpStringExpressionFunctionProvider; +use Dbp\Relay\CoreBundle\ExpressionLanguage\ExpressionFunctionProviders\StringExpressionFunctionProvider; use Psr\Cache\CacheItemPoolInterface; use Symfony\Component\ExpressionLanguage\ExpressionLanguage as SymfonyExpressionLanguage; @@ -24,6 +25,7 @@ class ExpressionLanguage extends SymfonyExpressionLanguage new PhpNumericExpressionFunctionProvider(), new PhpStringExpressionFunctionProvider(), new ArrayExpressionFunctionProvider(), + new StringExpressionFunctionProvider(), ], $providers); parent::__construct($cache, $providers);