Exemplo n.º 1
0
 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;
 }