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 = $token->getUser(); return $subject->getNode() ->getLaw() ->isGranted($user->getSource()->getNode(), LayerType::SOURCE, $attribute); } }