$accesses * @param Access $access * @return array * @see UtilsTest::testFilterAccesses() */ public function filterAccesses(array $accesses, Access $access): array { return array_filter($accesses, function($a) use($access){ /** @var Access $a */ return $a->getId() !== $access->getId(); }); } /** * Recherche parmis les roles si l'Access possède celui passé en paramètre * @param Access $access * @param string $roleToHave * @return bool * @see UtilsTest::testHasRoles() */ public function hasRoles(Access $access, string $roleToHave): bool{ return in_array($roleToHave, $this->getAllRoles($access)); } /** * Va récupérer les roles d'access + les roles optionnels possibles * @param Access $access * @return array * @see UtilsTest::testGetAllRoles() */ public function getAllRoles(Access $access): array { $roles = $this->optionalsRolesIterator->getOptionalsRoles($access); return $this->roleHierarchy->getReachableRoleNames(array_merge($access->getRoles(), $roles)); } /** * Renvoi l'access de l'organization qui est le "super admin" * @param Organization $organization * @return Access|null * @see UtilsTest::testGetAdminAccess() */ public function getAdminAccess(Organization $organization): Access|null{ return $this->accessRepository->findOneBy([ 'adminAccess' => true, 'organization' => $organization ]) ?? null; } }