/**
  * 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)));
 }
Esempio n. 2
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.
     $this->getUser()->signIn($this->user->getGuardUser(), true);
 }
Esempio n. 3
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");
 }
Esempio n. 4
0
 /**
  * Méthode permettant de générer un nouveau jeton pour l'utilisateur à destinations de l'api.
  *
  * @param EiUser $user
  * @return string
  */
 public function generateToken(EiUser $user)
 {
     $token = sha1(rand(11111, 99999999999) . $this->calculateToken($user->getGuardUser()->getEmailAddress()) . rand(11111, 99999999999));
     $user->setTokenApi($token);
     $user->save($this->getConnection());
     return $token;
 }