From 1bb0449112568e7e7817ebe485e21cec42c16fe0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Wed, 4 Apr 2018 12:36:20 +0200 Subject: [PATCH] New interface for voters The use of the old interface trigger deprecation notice, handled by Chill. This should be safe for an upgrade towars sf 3, but still requires work inside bundles. --- Security/Authorization/AbstractChillVoter.php | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/Security/Authorization/AbstractChillVoter.php b/Security/Authorization/AbstractChillVoter.php index ac291c673..842fc5ecc 100644 --- a/Security/Authorization/AbstractChillVoter.php +++ b/Security/Authorization/AbstractChillVoter.php @@ -19,7 +19,8 @@ namespace Chill\MainBundle\Security\Authorization; -use Symfony\Component\Security\Core\Authorization\Voter\AbstractVoter; +use Symfony\Component\Security\Core\Authorization\Voter\Voter; +use Symfony\Component\Security\Core\Authentication\Token\TokenInterface; /** * Voter for Chill software. @@ -29,8 +30,26 @@ use Symfony\Component\Security\Core\Authorization\Voter\AbstractVoter; * * @author Julien Fastré */ -abstract class AbstractChillVoter extends AbstractVoter implements ChillVoterInterface +abstract class AbstractChillVoter extends Voter implements ChillVoterInterface { + protected function supports($attribute, $subject) + { + @trigger_error('This voter should implements the new `supports` ' + . 'methods introduced by Symfony 3.0, and do not rely on ' + . 'getSupportedAttributes and getSupportedClasses methods.', + E_USER_DEPRECATED); + + return \in_array($attribute, $this->getSupportedAttributes($attribute)) + && \in_array(\get_class($subject), $this->getSupportedClasses()); + } + protected function voteOnAttribute($attribute, $subject, TokenInterface $token) + { + @trigger_error('This voter should implements the new `voteOnAttribute` ' + . 'methods introduced by Symfony 3.0, and do not rely on ' + . 'isGranted method', E_USER_DEPRECATED); + + return $this->isGranted($attribute, $subject, $token->getUser()); + } }