diff --git a/Security/Authorization/ActivityStatsVoter.php b/Security/Authorization/ActivityStatsVoter.php index dc8832635..93d8117a9 100644 --- a/Security/Authorization/ActivityStatsVoter.php +++ b/Security/Authorization/ActivityStatsVoter.php @@ -45,7 +45,7 @@ class ActivityStatsVoter extends AbstractChillVoter implements ProvideRoleHierar $this->helper = $helper; } - protected function getSupportedAttributes() + private function getAttributes() { return array(self::STATS, self::LISTS); } @@ -54,6 +54,17 @@ class ActivityStatsVoter extends AbstractChillVoter implements ProvideRoleHierar { return array(Center::class); } + + protected function supports($attribute, $subject) + { + if ($subject instanceof Center + && \in_array($attribute, $this->getAttributes())) { + + return true; + } + + return false; + } protected function isGranted($attribute, $object, $user = null) { @@ -66,12 +77,12 @@ class ActivityStatsVoter extends AbstractChillVoter implements ProvideRoleHierar public function getRoles() { - return $this->getSupportedAttributes(); + return $this->getAttributes(); } public function getRolesWithoutScope() { - return $this->getSupportedAttributes(); + return $this->getAttributes(); } public function getRolesWithHierarchy() diff --git a/Security/Authorization/ActivityVoter.php b/Security/Authorization/ActivityVoter.php index 79b5b8202..5d0d50906 100644 --- a/Security/Authorization/ActivityVoter.php +++ b/Security/Authorization/ActivityVoter.php @@ -55,10 +55,7 @@ class ActivityVoter extends AbstractChillVoter implements ProvideRoleHierarchyIn protected function supports($attribute, $subject) { if ($subject instanceof Activity) { - return \in_array($attribute, [ - self::CREATE, self::SEE, self::UPDATE, self::DELETE, - self::SEE_DETAILS - ]); + return \in_array($attribute, $this->getAttributes()); } else { return false; } @@ -71,11 +68,17 @@ class ActivityVoter extends AbstractChillVoter implements ProvideRoleHierarchyIn } return $this->helper->userHasAccess($token->getUser(), $subject, $attribute); } + + private function getAttributes() + { + return [ self::CREATE, self::SEE, self::UPDATE, self::DELETE, + self::SEE_DETAILS ]; + } public function getRoles() { - return $this->getSupportedAttributes(); + return $this->getAttributes(); } public function getRolesWithoutScope()