public function getProfilsScenarioForUser(EiUser $user, $scenarioId) { // On définit la liste qui sera retournée à null. $liste = null; // On définit la requête SQL qui va interroger la base de données afin de récupérer les scénarios visibles par // l'utilisateur. $query = "\n SELECT *\n FROM ei_profil\n WHERE (profile_ref, profile_id) IN (\n SELECT profile_ref, profile_id\n FROM ei_profil_scenario\n WHERE ei_scenario_id = " . $scenarioId . "\n AND ei_scenario_id IN (\n SELECT id\n FROM ei_scenario\n WHERE (project_ref, project_id) IN (\n SELECT project_ref, project_id\n FROM ei_project_user\n WHERE user_ref = " . $user->getRefId() . "\n AND user_id = " . $user->getUserId() . "\n )\n )\n );\n "; // On récupère sous forme de tableau les scénarios. $profils = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAll($query); // Si le nombre de scénarios est supérieur à zéro, on crée les objets associés. if (count($profils) > 0) { /** @var EiProfil $profilArray */ foreach ($profils as $profilArray) { $temp = new EiProfil(); $temp->setArray($profilArray); $liste[] = $temp; } } return $liste; }