Esempio n. 1
0
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('is_anonymous', function () {
         return '$trust_resolver->isAnonymous($token)';
     }, function (array $variables) {
         return $variables['trust_resolver']->isAnonymous($variables['token']);
     });
     $this->register('is_authenticated', function () {
         return '$token && !$trust_resolver->isAnonymous($token)';
     }, function (array $variables) {
         return $variables['token'] && !$variables['trust_resolver']->isAnonymous($variables['token']);
     });
     $this->register('is_fully_authenticated', function () {
         return '$trust_resolver->isFullFledged($token)';
     }, function (array $variables) {
         return $variables['trust_resolver']->isFullFledged($variables['token']);
     });
     $this->register('is_remember_me', function () {
         return '$trust_resolver->isRememberMe($token)';
     }, function (array $variables) {
         return $variables['trust_resolver']->isRememberMe($variables['token']);
     });
     $this->register('has_role', function ($role) {
         return sprintf('in_array(%s, $roles)', $role);
     }, function (array $variables, $role) {
         return in_array($role, $variables['roles']);
     });
     $this->register('is_granted', function ($attributes, $object = 'null') {
         return sprintf('$security_context->isGranted(%s, %s)', $attributes, $object);
     }, function (array $variables, $attributes, $object = null) {
         return $variables['security_context']->isGranted($attributes, $object);
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('is_anonymous', function () {
         return '$trust_resolver->isAnonymous($token)';
     }, function (array $variables) {
         return $variables['trust_resolver']->isAnonymous($variables['token']);
     });
     $this->register('is_authenticated', function () {
         return '$token && !$trust_resolver->isAnonymous($token)';
     }, function (array $variables) {
         return $variables['token'] && !$variables['trust_resolver']->isAnonymous($variables['token']);
     });
     $this->register('is_fully_authenticated', function () {
         return '$trust_resolver->isFullFledged($token)';
     }, function (array $variables) {
         return $variables['trust_resolver']->isFullFledged($variables['token']);
     });
     $this->register('is_remember_me', function () {
         return '$trust_resolver->isRememberMe($token)';
     }, function (array $variables) {
         return $variables['trust_resolver']->isRememberMe($variables['token']);
     });
     $this->register('has_role', function ($role) {
         return sprintf('in_array(%s, $roles)', $role);
     }, function (array $variables, $role) {
         return in_array($role, $variables['roles']);
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     // Test expression which always returns the opposite of the value we pass to it
     $this->register('hasAccessIfTrue', function ($arg) {
         return sprintf('return !%s', $arg);
     }, function (array $variables, $value) {
         return !$value;
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('lowercase', function ($str) {
         return sprintf('(is_string(%1$s) ? strtolower(%1$s) : %1$s)', $str);
     }, function ($arguments, $str) {
         if (!is_string($str)) {
             return $str;
         }
         return strtolower($str);
     });
 }
 /**
  * {@inheritdoc}
  */
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('service', function ($arg) {
         return sprintf('$this->get(%s)', $arg);
     }, function (array $variables, $value) {
         return $variables['container']->get($value);
     });
     $this->register('parameter', function ($arg) {
         return sprintf('$this->getParameter(%s)', $arg);
     }, function (array $variables, $value) {
         return $variables['container']->getParameter($value);
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('service', function ($id) {
         return sprintf('$this->container->get(%s)', $id);
     }, function (array $variables, $id) {
         return $variables['container']->get($id);
     });
     $this->register('parameter', function ($name) {
         return sprintf('$this->container->getParameter(%s)', $name);
     }, function (array $variables, $name) {
         return $variables['container']->getParameter($name);
     });
     $this->register('attribute', function ($args) {
         return sprintf('$this->request->attributes->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->attributes->get($path, $default, $deep);
     });
     $this->register('request', function ($args) {
         return sprintf('$this->request->request->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->request->get($path, $default, $deep);
     });
     $this->register('query', function ($args) {
         return sprintf('$this->request->query->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->query->get($path, $default, $deep);
     });
     $this->register('server', function ($args) {
         return sprintf('$this->request->server->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->server->get($path, $default, $deep);
     });
     $this->register('file', function ($args) {
         return sprintf('$this->request->files->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->files->get($path, $default, $deep);
     });
     $this->register('cookie', function ($args) {
         return sprintf('$this->request->cookies->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->cookies->get($path, $default, $deep);
     });
     $this->register('header', function ($args) {
         return sprintf('$this->request->headers->get(%s)', $args);
     }, function (array $variables, $path, $default = null, $deep = false) {
         return $variables['request']->headers->get($path, $default, $deep);
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('service', function ($arg) {
         return sprintf('$this->get(%s)', $arg);
     }, function (array $variables, $value) {
         return $variables['container']->get($value);
     });
     $this->register('parameter', function ($arg) {
         return sprintf('$this->getParameter(%s)', $arg);
     }, function (array $variables, $value) {
         return $variables['container']->getParameter($value);
     });
     $this->register('is_granted', function ($arg) {
         return sprintf('call_user_func_array(array($this->get(security.context), isGranted), %s)', $arg);
     }, function (array $variables, $value) {
         return call_user_func_array(array($variables['container']->get('security.context'), 'isGranted'), $value);
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('list', function ($arg) {
         return sprintf('%s::get()', $arg);
     }, function (array $variables, $value) {
         return \DataList::create($value);
     });
     $this->register('instanceof', function ($arg0, $arg1) {
         return sprintf('%s instanceof %s', $arg0, $arg1);
     }, function (array $variables, $arg0, $arg1) {
         return $arg0 instanceof $arg1;
     });
     $this->register('key_exists', function ($arg0, $arg1) {
         return sprintf('array_key_exists(%s, %s)', $arg0, $arg1);
     }, function (array $variables, $arg0, $arg1) {
         return array_key_exists($arg0, $arg1);
     });
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('service', function ($arg) {
         return sprintf('$this->get(%s)', $arg);
     }, function (array $variables, $value) {
         return $variables['container']->get($value);
     });
     $this->register('parameter', function ($arg) {
         return sprintf('$this->getParameter(%s)', $arg);
     }, function (array $variables, $value) {
         return $variables['container']->getParameter($value);
     });
     $this->register('is_granted', function ($attribute, $object = null) {
         return sprintf('call_user_func_array(array($this->get(security.authorization_checker), isGranted), array(%s, %s))', $attribute, $object);
     }, function (array $variables, $attribute, $object = null) {
         return call_user_func_array(array($variables['container']->get('security.authorization_checker'), 'isGranted'), [$attribute, $object]);
     });
 }
Esempio n. 10
0
 /**
  * (non-PHPdoc)
  *
  * @see \Symfony\Component\ExpressionLanguage\ExpressionLanguage::registerFunctions()
  */
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register("user_can", function ($permission) {
         return sprintf('$groupSecurityChecker->userCan($group, %s)', $permission);
     }, function (array $variables, $permission) {
         return $variables["groupSecurityChecker"]->userCan($variables["group"], $permission);
     });
     $this->register("user_cannot", function ($permission) {
         return sprintf('!$groupSecurityChecker->userCan($group, %s)', $permission);
     }, function (array $variables, $permission) {
         return !$variables["groupSecurityChecker"]->userCan($variables["group"], $permission);
     });
     $this->register("group_is", function ($status) {
         return sprintf('$groupSecurityChecker->groupIs($group, %s)', $status);
     }, function (array $variables, $status) {
         return $variables["groupSecurityChecker"]->groupIs($variables["group"], $status);
     });
     $this->register("group_is_not", function ($status) {
         return sprintf('!$groupSecurityChecker->groupIs($group, %s)', $status);
     }, function (array $variables, $status) {
         return !$variables["groupSecurityChecker"]->groupIs($variables["group"], $status);
     });
 }
Esempio n. 11
0
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $this->register('isAnonymous', function () {
         return '!$user->isLoggedIn()';
     }, function (array $variables) {
         return !$variables['user']->isLoggedIn();
     });
     $this->register('isAuthenticated', function () {
         return '$user->isLoggedIn()';
     }, function (array $variables) {
         return $variables['user']->isLoggedIn();
     });
     $this->register('hasRole', function ($role) {
         return sprintf('in_array(%s, $roles)', $role);
     }, function (array $variables, $role) {
         return in_array($role, $variables['roles']);
     });
     $this->register('hasPermission', function ($object, $attributes) {
         return sprintf('$securityContext && $securityContext->isGranted(%s, %s)', $attributes, $object);
     }, function (array $variables, $object, $attributes) {
         return $variables['securityContext'] && $variables['securityContext']->isGranted($attributes, $object);
     });
 }
Esempio n. 12
0
 /**
  * Register functions
  *
  * @return void
  */
 protected function registerFunctions()
 {
     parent::registerFunctions();
     $functions = ['call' => function (array $values, $function) {
         $args = array_slice(func_get_args(), 2);
         if (array_key_exists($function, $this->functions)) {
             array_unshift($args, $values);
             $function = $this->functions[$function]['evaluator'];
         }
         return call_user_func_array($function, $args);
     }, 'isset' => function (array $values, $var) {
         return $values[self::VARIABLES_KEY]->has($var);
     }, 'empty' => function (array $values, $var) {
         return !$values[self::VARIABLES_KEY]->has($var) || !$values[self::VARIABLES_KEY]->get($var);
     }, 'get' => function (array $values, $var) {
         return $values[self::VARIABLES_KEY]->get($var);
     }, 'set' => function (array $values, $var, $value) {
         $values[self::VARIABLES_KEY]->set($var, $value);
         return $value;
     }, 'confirm' => function (array $values, $question) {
         return $this->ask($values[self::VARIABLES_KEY], new ConfirmationQuestion("<question>{$question}</question> [y] "));
     }, 'answer' => function (array $values, $question) {
         return $this->ask($values[self::VARIABLES_KEY], new Question("<question>{$question}</question> "));
     }, 'choose' => function (array $values, $question) {
         return $this->ask($values[self::VARIABLES_KEY], new Question("<question>{$question}</question> "));
     }, 'replace' => function (array $values, $search, $replace, $subject, $regex = false) {
         $values[self::VARIABLES_KEY]->console->output('<warning>Expression language function "replace" is deprecated ' . 'and will be removed in 1.6.0 - use preg_replace or str_replace</warning>');
         if ($regex) {
             return preg_replace($search, $replace, $subject);
         } else {
             return str_replace($search, $replace, $subject);
         }
     }];
     foreach ($functions as $name => $function) {
         $this->register($name, function () {
         }, $function);
     }
 }
 protected function registerFunctions()
 {
     parent::registerFunctions();
     // do not forget to also register core functions
 }