/**
  * Action permettant de créer un data set.
  *
  * @param sfWebRequest $request
  */
 public function execute($request)
 {
     $this->setLayout(false);
     $this->getResponse()->setContentType('application/json');
     try {
         // Création du tableau de résultats.
         $folders = array();
         /** @var EiProjetTable $tableProjet */
         $tableProjet = Doctrine_Core::getTable("EiProjet");
         $projetsListe = $tableProjet->findUserProjet($this->user->getGuardId());
         if ($projetsListe !== null) {
             /** @var EiProjet $projet */
             foreach ($projetsListe as $projet) {
                 if ($projet != null && $projet->needsReload($this->user->getGuardUser()->getUsername())) {
                     $xml = $projet->downloadKalFonctions($request);
                     if ($xml != null) {
                         $projet->transactionToLoadObjectsOfProject($xml);
                     }
                 }
                 /** @var EiNode $oRoot */
                 $oRoot = $projet->getRootFolder();
                 //Récupération du dossier root
                 /** @var EiNode[] $oChilds */
                 $oChilds = $oRoot->getStructure();
                 // Ajout du lien vers le scénario.
                 $oChilds = $this->throwStructureAndAddUrlToScenario($oChilds, $projet->getDefaultProfil());
                 $folders[] = $oChilds;
             }
         }
     } catch (Exception $e) {
         $folders = array();
     }
     return $this->renderText(json_encode(array("tree" => $folders)));
 }
 /**
  * @param $nom
  * @param $description
  * @param EiNode $noeud
  * @param EiScenario $scenario
  * @throws Exception
  */
 public function createEmpty($nom, $description, EiNode $noeud, EiUser $user)
 {
     // On affecte le nom, la description, le noeud.
     $this->name = $nom;
     $this->description = $description;
     $this->setEiNode($noeud);
     // On affecte également l'utilisateur.
     $this->setUserId($user->getUserId());
     $this->setUserRef($user->getRefId());
 }
 public function getUserParams(EiUser $ei_user = null, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $q = $conn->createQuery()->from('EiUserParam up');
     if ($ei_user != null) {
         $q = $q->where('up.user_id=? And up.user_ref=?', array($ei_user->getUserId(), $ei_user->getRefId()));
     }
     $q = $q->orderBy('up.name');
     return $q->execute();
 }
Example #4
0
 public static function createUser(array $ei_user_tab, $guard_id, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $new_ei_user = new EiUser();
     $new_ei_user->setGuardId($guard_id);
     $new_ei_user->setRefId($ei_user_tab['ref_id']);
     $new_ei_user->setUserId($ei_user_tab['user_id']);
     $new_ei_user->setMatricule($ei_user_tab['matricule']);
     $new_ei_user->save();
     return $new_ei_user;
 }
Example #5
0
 /**
  * Méthode permettant de vérifier l'utilisateur rensigné par le Web service par le biais de tokens.
  */
 private function checkUserWebService()
 {
     /** @var EiUserTable $table */
     $table = Doctrine_Core::getTable('EiUser');
     $this->token = $this->getRequest()->getParameter("token");
     $this->user = $table::getInstance()->getUserByTokenApi($this->token);
     $this->forward404If(is_bool($this->user) && $this->user === false, "You are not allowed to access this page.");
     // On récupère le nom d'utilisateur ainsi que le mot de passe pour les intéractions avec script.
     $this->login = $this->user->getGuardUser()->getUsername();
     // On authentifie l'utilisateur s'il ne l'est pas.
     if (MyFunction::getGuard() == null) {
         $this->getUser()->signIn($this->user->getGuardUser(), true);
     }
 }
 public function setDefaultPackage($ticket_id, $ticket_ref, EiProjet $ei_project, EiUser $ei_user, $is_new, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     if ($ticket_id != null && $ticket_ref != null) {
         if ($is_new == 0) {
             $conn->insert($this->getInstance(), array('user_ref' => $ei_user->getRefId(), 'user_id' => $ei_user->getUserId(), 'project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'ticket_id' => $ticket_id, 'ticket_ref' => $ticket_ref, 'created_at' => date("Y-m-d H:i:s"), 'updated_at' => date("Y-m-d H:i:s")));
         } else {
             $conn->update($this->getInstance(), array('ticket_id' => $ticket_id, 'ticket_ref' => $ticket_ref, 'updated_at' => date("Y-m-d H:i:s")), array('user_ref' => $ei_user->getRefId(), 'user_id' => $ei_user->getUserId(), 'project_ref' => $ei_project->getRefId(), 'project_id' => $ei_project->getProjectId()));
         }
         return true;
     }
     return false;
 }
Example #7
0
 public function executeGenererXSL(sfWebRequest $request)
 {
     $this->checkProfile($request);
     $this->checkKalFunction($request);
     $this->guardUser = $this->user->getGuardUser();
     //Création du web service
     if ($this->ei_profile != null && $this->kal_function != null) {
         //Si les paramètres attendus sont bien renseignés
         $this->ei_project = $project = $this->ei_profile->getProject();
         //Rechargement de la fonction si Mise à jour rencontrée
         /* Si les login et mot de passe sont renseignés dans le
            fichier de config , alors on vérifie l'état des fonctions */
         if (sfConfig::get('project_login_systeme') && sfConfig::get('project_pwd_systeme')) {
             if ($this->ei_project != null) {
                 //Rechargement du projet si nécessaire
                 if ($this->ei_project->needsReload($this->login)) {
                     $this->ei_project->transactionToLoadObjectsOfProject($this->ei_project->downloadKalFonctions($request));
                 }
             }
         }
         //Génération du XSL
         $this->result = $this->kal_function->getXmlOrXslFunction($request, $this->ei_profile, $this->ei_project, $this->user);
     }
     $this->setTemplate("download");
 }
 /**
  * Action permettant de créer un data set.
  *
  * @param sfWebRequest $request
  */
 public function execute($request)
 {
     $this->setLayout(false);
     $this->getResponse()->setContentType('application/json');
     try {
         // Création du tableau de résultats.
         $projets = array();
         /** @var EiProjetTable $tableProjet */
         $tableProjet = Doctrine_Core::getTable("EiProjet");
         $projetsListe = $tableProjet->findUserProjet($this->user->getGuardId());
         if ($projetsListe !== null) {
             /** @var EiProjet $projet */
             foreach ($projetsListe as $projet) {
                 $projets[] = array("ref" => $projet->getRefId(), "id" => $projet->getProjectId(), "nom" => $projet->getName());
             }
         }
     } catch (Exception $e) {
         $projets = array();
     }
     return $this->renderText(json_encode(array("projets" => $projets)));
 }
Example #9
0
 /**
  * Ordonne au serveur de cloturer la log en lui associant la date de fin d'execution
  * @param sfWebRequest $request
  * @return type
  * @throws Exception
  */
 public function executeEndCurrentLog(sfWebRequest $request)
 {
     $this->setLayout(false);
     $this->getResponse()->setContentType('application/json');
     try {
         $this->getUrlParameters($request);
         $log = Doctrine_Core::getTable('EiLog')->findOneByIdAndUserIdAndUserRefAndEiTestSetId($request->getParameter('ei_log_id'), $this->user->getUserId(), $this->user->getRefId(), $this->ei_test_set->getId());
         if ($log) {
             $log->closeExecution();
             $JSONResponse = array("ok" => "Log closed successfully.");
         } else {
             throw new Exception('Log not found.');
         }
     } catch (Exception $e) {
         $JSONResponse = array("error" => $e->getMessage());
     }
     return $this->renderText(json_encode($JSONResponse));
 }
Example #10
0
 public function getParamsWithName(EiUser $ei_user)
 {
     $conn = Doctrine_Manager::connection();
     $q = "\n         \n         SELECT p1.*, p2.name ,upp.id as upp_id,upp.value as upp_value\n\n         FROM  ei_profile_param p1\n         LEFT JOIN ei_user_profile_param upp ON upp.profile_param_id=p1.id And upp.user_id=" . $ei_user->getUserId() . "\n                 And upp.user_ref=" . $ei_user->getRefId() . "\n         LEFT   JOIN ei_project_param p2\n             ON p1.name = p2.param_id  \n        \n        WHERE\n            p1.profile_id= " . $this->getProfileId() . "\n        AND p1.profile_ref= " . $this->getProfileRef() . " \n            \n        ";
     return $conn->fetchAll($q);
 }
 public function getDefaultInterventionWithScenarioVersion(EiUser $ei_user, EiProjet $ei_project, EiVersion $ei_version, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     return $ei_user->getDefaultInterventionWithScenarioVersion($ei_project, $ei_version);
 }
Example #12
0
 /**
  * @param sfWebRequest $request
  * @return sfView
  */
 public function executeGetFunctionsFromPosition(sfWebRequest $request)
 {
     $this->setLayout(false);
     $this->getResponse()->setContentType('application/xml');
     $this->error = false;
     $chronometre1 = new Chronometre();
     $chronometre2 = new Chronometre();
     $chronometre3 = new Chronometre();
     $chronometre4 = new Chronometre();
     $this->chronometre5 = new Chronometre();
     $keyword = "PERFORMANCE NEXT BLOCK - ";
     $this->keyword = $keyword;
     // Début mesure.
     $chronometre1->lancerChrono($keyword . "LANCEMENT GENERATION DU BLOCK SUIVANT");
     if (is_bool($this->error)) {
         try {
             $this->getUrlParameters($request);
             //***********************************************************//
             //*****          RECUPERATION ITERATION ACTIVE          *****//
             //***********************************************************//
             // Récupération de l'itération active.
             $iterationActive = $this->ei_test_set->getEiIteration();
             //Récupération du package par défaut
             $this->defPack = Doctrine_Core::getTable('EiUserDefaultPackage')->findOneByProjectIdAndProjectRefAndUserIdAndUserRef($this->ei_project->getProjectId(), $this->ei_project->getRefId(), $this->user->getUserId(), $this->user->getRefId());
             //******************************************************************//
             //*****          GENERATION FONCTIONS DEPUIS POSITION          *****//
             //******************************************************************//
             $position = $request->getParameter("position");
             $this->getLogger()->info("-----   Début génération de la fonction à partir de la position " . $position . " pour le JDT N°" . $this->ei_test_set->getId() . ".");
             // Début mesure.
             $chronometre2->lancerChrono($keyword . "GENERATION FONCTION A PARTIR DE LA POSITION");
             $this->generateTestSetFunctionFromPosition($this->ei_test_set, $position, $iterationActive);
             // Fin mesure.
             $chronometre2->arreterEtAfficherChrono();
             //********************************************************************//
             //*****          TRAITEMENT DES FONCTIONS POUR TEMPLATE          *****//
             //********************************************************************//
             $this->functions = Doctrine_Core::getTable('EiTestSetFunction')->getFunctionsFromPosition($this->ei_test_set->getId(), $position, $this->ei_test_set->getProfileId(), $this->ei_test_set->getProfileRef());
             $this->params = array();
             $treated = array();
             // Début mesure.
             $chronometre3->lancerChrono($keyword . "FONCTIONS TO ARRAY");
             foreach ($this->functions as $function) {
                 $idFunc = $function["id"];
                 if (!in_array($idFunc, $treated)) {
                     $this->params[$idFunc] = Doctrine_Core::getTable("EiFunctionHasParam")->findByFunctionRefAndFunctionId($function["function_ref"], $function["function_id"])->toArray();
                 }
             }
             // Fin mesure.
             $chronometre3->arreterEtAfficherChrono();
             //*********************************************//
             //*****          SI FIN SCENARIO          *****//
             //*********************************************//
             // Début mesure.
             $chronometre4->lancerChrono($keyword . "FIN DE SCENARIO");
             if (count($this->functions) == 0) {
                 $this->getLogger()->info("-----   Fin de scénario.");
                 $this->ei_test_set->finish();
             }
             // Fin mesure.
             $chronometre4->arreterEtAfficherChrono();
             // Fin mesure.
             $chronometre1->arreterEtAfficherChrono();
         } catch (Exception $e) {
             //                var_dump($e);
             //                exit;
             return $this->renderText('<error>' . $e->getMessage() . '</error>');
         }
     } else {
         return $this->renderText('<error>' . $this->error . '</error>');
     }
 }
Example #13
0
 public static function getScriptUpdateResult(EiProjet $ei_project, EiProfil $kal_profil, EiTicket $ei_ticket, $json_string, KalFunction $kal_function, EiUser $ei_user, $script_id = 0, Doctrine_Connection $conn = null)
 {
     if ($conn == null) {
         $conn = Doctrine_Manager::connection();
     }
     $ei_subject = Doctrine_Core::getTable("EiSubject")->findOneByPackageIdAndPackageRef($ei_ticket->getTicketId(), $ei_ticket->getTicketRef());
     if ($ei_subject == null) {
         return array("success" => false, "message" => "Intervention not found ... ");
     }
     //Intervention non trouvée
     //Appel du webservice
     $result_update = MyFunction::loadResultOfWebServiceByPostJson(MyFunction::getPrefixPath(null) . "serviceweb/project/script/update.json", array('project_id' => $ei_project->getProjectId(), 'project_ref' => $ei_project->getRefId(), 'ticket_id' => $ei_ticket->getTicketId(), 'ticket_ref' => $ei_ticket->getTicketRef(), 'profile_id' => $kal_profil->getProfileId(), 'profile_ref' => $kal_profil->getProfileRef(), 'function_id' => $kal_function->getFunctionId(), 'function_ref' => $kal_function->getFunctionRef(), 'script_id' => $script_id, 'user_id' => $ei_user->getUserId(), 'user_ref' => $ei_user->getRefId(), 'package_name' => "Package_S" . $ei_subject->getId(), 'json_string' => rawurlencode($json_string)));
     //Récupération du projet pour traitement
     //        if ($result_update == null) return null;
     //        $result_file->loadXML($result_update);
     //        $result_file->save('result_update.xml'); /* sauvegarde du fichier pour vérifier le bon fonctionnement du web service */
     //        $result_item=$result_file->documentElement;
     //        if ($result_item->getElementsByTagName("error")->item(0)):
     //            return -1;
     //        endif;
     //        if ($result_item->getElementsByTagName("process_error")->item(0)):
     //            return 0;
     //        endif;
     //        if ($result_item->getElementsByTagName("process_ok")->item(0)):
     //            return 1;
     //        endif;
     try {
         $conn->beginTransaction();
         //Récupération du ticket pour traitement
         $array_result = json_decode(html_entity_decode($result_update), true);
         //Récupération du projet pour traitement
         if (count($array_result) == 0) {
             return array("success" => false, "message" => "Error on transaction");
         }
         if (array_key_exists("error", $array_result)) {
             return array("success" => false, "message" => $array_result["error"]);
         }
         if (array_key_exists("process_error", $array_result)) {
             return array("success" => false, "message" => $array_result["process_error"]);
         }
         if (!$array_result[0]) {
             return array("success" => false, "message" => "Empty result content");
         }
         self::reload($array_result, $conn);
         $conn->commit();
         return array("success" => true, "message" => "Transaction maded successfully");
     } catch (Exception $e) {
         throw new Exception($e);
         $conn->rollback();
         return array("success" => false, "message" => "Error on reload process ...");
     }
 }
 /**
  * Retourne la liste des scénarios dont l'utilisateur est ayant droit.
  *
  * @param EiUser $user
  * @return array|null
  */
 public function getScenariosFromUser(EiUser $user)
 {
     // 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_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        ";
     // On récupère sous forme de tableau les scénarios.
     $scenarios = 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($scenarios) > 0) {
         foreach ($scenarios as $scenarioArray) {
             $temp = new EiScenario();
             $temp->setArray($scenarioArray);
             $liste[] = $temp;
         }
     }
     return $liste;
 }
 public function getDefaultPackage(EiUser $ei_user, EiProjet $ei_project)
 {
     return Doctrine_Core::getTable('EiUserDefaultPackage')->findOneByUserRefAndUserIdAndProjectRefAndProjectId($ei_user->getRefId(), $ei_user->getUserId(), $ei_project->getRefId(), $ei_project->getProjectId());
 }
 protected function setEiUser(EiUser $ei_user)
 {
     $this->ei_user = $ei_user;
     $this->setUserId($ei_user->getUserId());
     $this->setUserRef($ei_user->getRefId());
 }