public function grantAccount(Account $account) { $grant = false; if ($this->authorizationChecker->isGranted('ROLE_RS')) { $grant = true; } elseif ($this->authorizationChecker->isGranted('ROLE_RCA')) { $agency = $this->userManager->getCurrent()->getAgency(); foreach ($account->getAgencies() as $account_agency) { if ($account_agency->getAgency() == $agency) { $grant = true; break; } } } elseif ($this->authorizationChecker->isGranted('ROLE_CA')) { foreach ($account->getOwners() as $account_owner) { if ($account_owner->getUser() == $this->userManager->getCurrent() && !$account_owner->getEnd()) { $grant = true; break; } } } return $grant; }