removed duplicate code

This commit is contained in:
Fabien Potencier 2011-01-07 17:14:20 +01:00
parent d1cc6837b6
commit 1c3a01b25c
3 changed files with 12 additions and 20 deletions

View File

@ -2,7 +2,6 @@
namespace Symfony\Bundle\FrameworkBundle\Templating\Helper;
use Symfony\Component\Security\Acl\Voter\FieldVote;
use Symfony\Component\Templating\Helper\Helper;
use Symfony\Component\Security\SecurityContext;
@ -39,16 +38,8 @@ class SecurityHelper extends Helper
if (null === $this->context) {
return false;
}
if ($field !== null) {
if (null === $object) {
throw new \InvalidArgumentException('$object cannot be null when field is not null.');
}
$object = new FieldVote($object, $field);
}
return $this->context->vote($role, $object);
return $this->context->vote($role, $object, $field);
}
/**

View File

@ -32,16 +32,8 @@ class SecurityExtension extends \Twig_Extension
if (null === $this->context) {
return false;
}
if ($field !== null) {
if (null === $object) {
throw new \InvalidArgumentException('$object cannot be null when field is not null.');
}
$object = new FieldVote($object, $field);
}
return $this->context->vote($role, $object);
return $this->context->vote($role, $object, $field);
}
/**

View File

@ -4,6 +4,7 @@ namespace Symfony\Component\Security;
use Symfony\Component\Security\Authentication\Token\TokenInterface;
use Symfony\Component\Security\Authorization\AccessDecisionManager;
use Symfony\Component\Security\Acl\Voter\FieldVote;
/*
* This file is part of the Symfony package.
@ -45,12 +46,20 @@ class SecurityContext
return null === $this->token ? null : $this->token->getUser();
}
public function vote($attributes, $object = null)
public function vote($attributes, $object = null, $field = null)
{
if (null === $this->token || null === $this->accessDecisionManager) {
return false;
}
if ($field !== null) {
if (null === $object) {
throw new \InvalidArgumentException('$object cannot be null when field is not null.');
}
$object = new FieldVote($object, $field);
}
return $this->accessDecisionManager->decide($this->token, (array) $attributes, $object);
}