diff --git a/UPGRADE-3.0.md b/UPGRADE-3.0.md index 855056b682a2..96f6f8285ce4 100644 --- a/UPGRADE-3.0.md +++ b/UPGRADE-3.0.md @@ -707,10 +707,9 @@ UPGRADE FROM 2.x to 3.0 ```php class MyVoter extends AbstractVoter { - protected function supports($attribute, $class) + protected function supports($attribute, $object) { - return $this->isClassInstanceOf($class, 'AppBundle\Entity\Post') - && in_array($attribute, array('CREATE', 'EDIT')); + return $object instanceof Post && in_array($attribute, array('CREATE', 'EDIT')); } // ... diff --git a/src/Symfony/Component/Security/Core/Authorization/Voter/AbstractVoter.php b/src/Symfony/Component/Security/Core/Authorization/Voter/AbstractVoter.php index 12b54db529c2..24060c07c5d5 100644 --- a/src/Symfony/Component/Security/Core/Authorization/Voter/AbstractVoter.php +++ b/src/Symfony/Component/Security/Core/Authorization/Voter/AbstractVoter.php @@ -68,10 +68,9 @@ public function vote(TokenInterface $token, $object, array $attributes) // abstain vote by default in case none of the attributes are supported $vote = self::ACCESS_ABSTAIN; - $class = get_class($object); foreach ($attributes as $attribute) { - if (!$this->supports($attribute, $class)) { + if (!$this->supports($attribute, $object)) { continue; } @@ -88,25 +87,22 @@ public function vote(TokenInterface $token, $object, array $attributes) } /** - * Determines if the attribute and class are supported by this voter. - * - * To determine if the passed class is instance of the supported class, the - * isClassInstanceOf() method can be used. + * Determines if the attribute and object are supported by this voter. * * This method will become abstract in 3.0. * * @param string $attribute An attribute - * @param string $class The fully qualified class name of the passed object + * @param string $object The object to secure * - * @return bool True if the attribute and class is supported, false otherwise + * @return bool True if the attribute and object is supported, false otherwise */ - protected function supports($attribute, $class) + protected function supports($attribute, $object) { @trigger_error('The getSupportedClasses and getSupportedAttributes methods are deprecated since version 2.8 and will be removed in version 3.0. Overwrite supports instead.', E_USER_DEPRECATED); $classIsSupported = false; foreach ($this->getSupportedClasses() as $supportedClass) { - if ($this->isClassInstanceOf($class, $supportedClass)) { + if ($object instanceof $supportedClass) { $classIsSupported = true; break; } @@ -123,20 +119,6 @@ protected function supports($attribute, $class) return true; } - /** - * A helper method to test if the actual class is instanceof or equal - * to the expected class. - * - * @param string $actualClass The actual class name - * @param string $expectedClass The expected class name - * - * @return bool - */ - protected function isClassInstanceOf($actualClass, $expectedClass) - { - return $expectedClass === $actualClass || is_subclass_of($actualClass, $expectedClass); - } - /** * Return an array of supported classes. This will be called by supportsClass. * diff --git a/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AbstractVoterTest.php b/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AbstractVoterTest.php index 7062d3983b96..5ea77320cf61 100644 --- a/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AbstractVoterTest.php +++ b/src/Symfony/Component/Security/Core/Tests/Authorization/Voter/AbstractVoterTest.php @@ -84,10 +84,9 @@ protected function voteOnAttribute($attribute, $object, TokenInterface $token) return 'EDIT' === $attribute; } - protected function supports($attribute, $class) + protected function supports($attribute, $object) { - return $this->isClassInstanceOf($class, 'stdClass') - && in_array($attribute, array('EDIT', 'CREATE')); + return $object instanceof \stdClass && in_array($attribute, array('EDIT', 'CREATE')); } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy