From 9cb37a61158ef4a0bdc1a417bcc2786a503afadd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sun, 24 Jan 2016 22:25:55 +0100 Subject: [PATCH] add ACL for export --- Export/Filter/GenderFilter.php | 6 ++++++ Export/Filter/NationalityFilter.php | 6 ++++++ Security/Authorization/PersonVoter.php | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Export/Filter/GenderFilter.php b/Export/Filter/GenderFilter.php index 3b101e5e7..f1ae8f7e2 100644 --- a/Export/Filter/GenderFilter.php +++ b/Export/Filter/GenderFilter.php @@ -24,6 +24,7 @@ use Symfony\Component\Form\FormBuilderInterface; use Chill\PersonBundle\Entity\Person; use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\Query\Expr; +use Symfony\Component\Security\Core\Role\Role; /** * @@ -78,4 +79,9 @@ class GenderFilter implements FilterInterface { return 'Filter by person gender'; } + + public function requiredRole() + { + return new Role(\Chill\PersonBundle\Security\Authorization\PersonVoter::STATS); + } } diff --git a/Export/Filter/NationalityFilter.php b/Export/Filter/NationalityFilter.php index 0f24c5e90..6b2d5966e 100644 --- a/Export/Filter/NationalityFilter.php +++ b/Export/Filter/NationalityFilter.php @@ -23,6 +23,7 @@ use Symfony\Component\Form\FormBuilderInterface; use Doctrine\ORM\QueryBuilder; use Chill\MainBundle\Export\FilterInterface; use Doctrine\ORM\Query\Expr; +use Symfony\Component\Security\Core\Role\Role; /** * @@ -63,4 +64,9 @@ class NationalityFilter implements FilterInterface { return "Filter by person's nationality"; } + + public function requiredRole() + { + return new Role(\Chill\PersonBundle\Security\Authorization\PersonVoter::STATS); + } } diff --git a/Security/Authorization/PersonVoter.php b/Security/Authorization/PersonVoter.php index 1f1116abe..8808882f8 100644 --- a/Security/Authorization/PersonVoter.php +++ b/Security/Authorization/PersonVoter.php @@ -49,12 +49,12 @@ class PersonVoter extends AbstractChillVoter implements ProvideRoleInterface protected function getSupportedAttributes() { - return array(self::CREATE, self::UPDATE, self::SEE); + return array(self::CREATE, self::UPDATE, self::SEE, self::STATS); } protected function getSupportedClasses() { - return array('Chill\PersonBundle\Entity\Person'); + return array('Chill\PersonBundle\Entity\Person', 'Chill\MainBundle\Entity\Center'); } protected function isGranted($attribute, $person, $user = null)