checkInstance($subject) && $this->checkRight($attribute); } //private function checkLayer(string $layer):bool{ // return (in_array($right, array_keys(LayerType::getChoices()))); //} private function checkRight(string $right):bool{ return (in_array($right, array_keys(RightType::getChoices()))); } private function checkInstance($subject):bool{ return ($subject instanceof SourceInterface); } /** * @todo add if father, that it should have all rights! * @param string[] $attribute * @param SourceInterface $subject * @param TokenInterface $token * {@inheritdoc} * @see \Symfony\Component\Security\Core\Authorization\Voter\Voter::voteOnAttribute() */ protected function voteOnAttribute($attribute, $subject, TokenInterface $token) { /** * @var UserInterface $user */ $user = $token->getUser(); return $subject->getNode() ->getLaw() ->isGranted($user->getSource()->getNode(), LayerType::SOURCE, $attribute); } }