/[openfoncier]/trunk/obj/utils.class.php
ViewVC logotype

Diff of /trunk/obj/utils.class.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 817 by fmichon, Fri Nov 23 11:35:07 2012 UTC revision 1859 by fmichon, Tue May 7 11:55:24 2013 UTC
# Line 38  require_once PATH_OPENMAIRIE."om_applica Line 38  require_once PATH_OPENMAIRIE."om_applica
38  class utils extends application {  class utils extends application {
39    
40      // {{{      // {{{
41        
42        /**
43         *
44         */
45        function isAccredited($obj = NULL, $operator = "AND") {
46            // Lorsque l'utilisateur a le login 'admin' alors il est authorisé à
47            // accéder à toutes les fonctions du logiciel
48            // XXX à modifier pour changer ça vers un profil et non un login utilisateur
49            if ($_SESSION["login"] == "admin") {
50                return true;
51            }
52            // Fonctionnement standard
53            return parent::isAccredited($obj, $operator);
54        }
55        
56        // }}}
57    
58        // {{{
59    
60      var $om_utilisateur = array();      var $om_utilisateur = array();
61      var $user_is_instr = NULL;      var $user_is_instr = NULL;
# Line 53  class utils extends application { Line 71  class utils extends application {
71                            
72              // Récupération des infos utilisateur              // Récupération des infos utilisateur
73              $sqlUser = "SELECT om_utilisateur, nom, email, login, om_collectivite, om_profil ".              $sqlUser = "SELECT om_utilisateur, nom, email, login, om_collectivite, om_profil ".
74              "FROM om_utilisateur WHERE login = '".$_SESSION['login']."'";              "FROM ".DB_PREFIXE."om_utilisateur WHERE login = '".$_SESSION['login']."'";
75              $resUser=$this->db->query($sqlUser);              $resUser=$this->db->query($sqlUser);
76              $this->addToLog("getUserInfos(): db->query(\"".$sqlUser."\");", VERBOSE_MODE);              $this->addToLog("getUserInfos(): db->query(\"".$sqlUser."\");", VERBOSE_MODE);
77              $this->isDatabaseError($resUser);              if ( database::isError($resUser)){
78                    die();
79                }
80              $this->om_utilisateur=&$resUser->fetchRow(DB_FETCHMODE_ASSOC);              $this->om_utilisateur=&$resUser->fetchRow(DB_FETCHMODE_ASSOC);
81                            
82              // Récupération des infos instructeur              // Récupération des infos instructeur
83              $sqlInstr = "SELECT instructeur.instructeur, instructeur.nom, instructeur.telephone, division.code, division.libelle ".              $sqlInstr = "SELECT instructeur.instructeur, instructeur.nom, instructeur.telephone,
84              "FROM instructeur INNER JOIN division ON division.division=instructeur.division ".              division.division, division.code, division.libelle ".
85                "FROM ".DB_PREFIXE."instructeur INNER JOIN ".DB_PREFIXE."division ON division.division=instructeur.division ".
86              "WHERE instructeur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];              "WHERE instructeur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];
87              $resInstr=$this->db->query($sqlInstr);              $resInstr=$this->db->query($sqlInstr);
88              $this->addToLog("getUserInfos(): db->query(\"".$sqlInstr."\");", VERBOSE_MODE);              $this->addToLog("getUserInfos(): db->query(\"".$sqlInstr."\");", VERBOSE_MODE);
89              $this->isDatabaseError($resInstr);              if ( database::isError($resInstr)){
90                    die();
91                }
92              $tempInstr=&$resInstr->fetchRow(DB_FETCHMODE_ASSOC);              $tempInstr=&$resInstr->fetchRow(DB_FETCHMODE_ASSOC);
93              // Si il y a un resultat c'est un instructeur              // Si il y a un resultat c'est un instructeur
94              if(count($tempInstr)>0) {              if(count($tempInstr)>0) {
# Line 77  class utils extends application { Line 100  class utils extends application {
100                            
101              // Récupération des infos de services ext consultés              // Récupération des infos de services ext consultés
102              $sqlServExt = "SELECT service.service, service.abrege, service.libelle ".              $sqlServExt = "SELECT service.service, service.abrege, service.libelle ".
103              "FROM service ".              "FROM ".DB_PREFIXE."service ".
104              "INNER JOIN lien_service_om_utilisateur ON lien_service_om_utilisateur.service=service.service ".              "INNER JOIN ".DB_PREFIXE."lien_service_om_utilisateur ON lien_service_om_utilisateur.service=service.service ".
105              "WHERE lien_service_om_utilisateur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];              "WHERE lien_service_om_utilisateur.om_utilisateur = ".$this->om_utilisateur['om_utilisateur'];
106              $resServExt=$this->db->query($sqlServExt);              $resServExt=$this->db->query($sqlServExt);
107              $this->addToLog("getUserInfos(): db->query(\"".$sqlServExt."\");", VERBOSE_MODE);              $this->addToLog("getUserInfos(): db->query(\"".$sqlServExt."\");", VERBOSE_MODE);
108              $this->isDatabaseError($resServExt);              if ( database::isError($resServExt)){
109                    die();
110                }
111                            
112              while ($tempServExt=&$resServExt->fetchRow(DB_FETCHMODE_ASSOC)) {              while ($tempServExt=&$resServExt->fetchRow(DB_FETCHMODE_ASSOC)) {
113                  $this->om_utilisateur['service'][]=$tempServExt;                  $this->om_utilisateur['service'][]=$tempServExt;
# Line 133  class utils extends application { Line 158  class utils extends application {
158          WHERE instructeur.om_utilisateur='".$utilisateur["om_utilisateur"]."'";          WHERE instructeur.om_utilisateur='".$utilisateur["om_utilisateur"]."'";
159          $res = $this->db->query($sql);          $res = $this->db->query($sql);
160          $this->addToLog("triggerAfterLogin(): db->query(\"".$sql."\");", VERBOSE_MODE);          $this->addToLog("triggerAfterLogin(): db->query(\"".$sql."\");", VERBOSE_MODE);
161          $this->isDatabaseError($res);          if ( database::isError($res)){
162                die();
163            }
164          $row = $res->fetchrow(DB_FETCHMODE_ASSOC);          $row = $res->fetchrow(DB_FETCHMODE_ASSOC);
165          //          //
166          if (isset($row["division"]) && $row["division"] != NULL) {          if (isset($row["division"]) && $row["division"] != NULL) {
# Line 158  class utils extends application { Line 185  class utils extends application {
185    
186      // }}}      // }}}
187    
188        
189        function getDivisionFromDossier($dossier) {
190            //
191            $sql = "select division from ".DB_PREFIXE."dossier ";
192            $sql .= " where dossier='".$dossier."'";
193            //
194            $division = $this->db->getOne($sql);
195            $this->addToLog("getDivisionFromDossier(): db->getone(\"".$sql."\")", VERBOSE_MODE);
196            database::isError($division);
197            //
198            return $division;
199        }
200    
201        // {{{ SURCHARGES POUR LE FONCTIONNEMENT DES REQUETES REST
202    
203      /**      /**
204       * Cette méthode permet de vérifier si l'utilisateur est autorisé ou non à       * Cette méthode permet de vérifier si l'utilisateur est autorisé ou non à
205       * accéder à un élément et permet d'agir en conséquence       * accéder à un élément et permet d'agir en conséquence
# Line 181  class utils extends application { Line 223  class utils extends application {
223    
224              //              //
225              $message_class = "error";              $message_class = "error";
226              $message = _("Droits insuffisants. Vous n'avez pas suffisament de ".              $message = _("Droits insuffisants. Vous n'avez pas suffisamment de ".
227                           "droits pour acceder a cette page.");                           "droits pour acceder a cette page.");
228              $this->addToMessage($message_class, $message);              $this->addToMessage($message_class, $message);
229    
# Line 305  class utils extends application { Line 347  class utils extends application {
347                  $temp = $this->database_config["schema"].".";                  $temp = $this->database_config["schema"].".";
348              }              }
349              $temp = $temp.$this->database_config["prefixe"];              $temp = $temp.$this->database_config["prefixe"];
350              define("DB_PREFIXE", $temp);              (defined("DB_PREFIXE") ? "" : define("DB_PREFIXE", $temp));
351              define("FORMATDATE", $this->database_config["formatdate"]);              (defined("FORMATDATE") ? "" : define("FORMATDATE", $this->database_config["formatdate"]));
352    
353              // Definition des constantes pour l'acces aux informations de la base              // Definition des constantes pour l'acces aux informations de la base
354              // donnees facilement.              // donnees facilement.
355              define("OM_DB_FORMATDATE", $this->database_config["formatdate"]);              (defined("OM_DB_FORMATDATE") ? "" : define("OM_DB_FORMATDATE", $this->database_config["formatdate"]));
356              define("OM_DB_PHPTYPE", $this->database_config["phptype"]);              (defined("OM_DB_PHPTYPE") ? "" : define("OM_DB_PHPTYPE", $this->database_config["phptype"]));
357              define("OM_DB_DATABASE", $this->database_config["database"]);              (defined("OM_DB_DATABASE") ? "" : define("OM_DB_DATABASE", $this->database_config["database"]));
358              define("OM_DB_SCHEMA", $this->database_config["schema"]);              (defined("OM_DB_SCHEMA") ? "" : define("OM_DB_SCHEMA", $this->database_config["schema"]));
359              define("OM_DB_TABLE_PREFIX", $this->database_config["prefixe"]);              (defined("OM_DB_TABLE_PREFIX") ? "" : define("OM_DB_TABLE_PREFIX", $this->database_config["prefixe"]));
360          }          }
361    
362      }      }
# Line 368  class utils extends application { Line 410  class utils extends application {
410       */       */
411      function displayMessage($class = "", $message = "") {      function displayMessage($class = "", $message = "") {
412          if (!defined('REST_REQUEST')) {          if (!defined('REST_REQUEST')) {
413              $this->m->displayMessage($class, $message);              $this->layout->display_message($class, $message);
414          }          }
415      }      }
416    
417      /**      // }}}
418       *  
419       */      // {{{ GESTION DES FICHIERS
     function isAccredited($obj = NULL, $operator = "AND") {  
         // Lorsque l'utilisateur a le login 'admin' alors il est authorisé à  
         // accéder à toutes les fonctions du logiciel  
         // XXX à modifier pour changer ça vers un profil et non un login utilisateur  
         if ($_SESSION["login"] == "admin") {  
             return true;  
         }  
         // Fonctionnement standard  
         return parent::isAccredited($obj, $operator);  
     }  
420    
421      /**      /**
422       * Méthode de création de répertoire dans le dossier /trs correspondant       * Méthode de création de répertoire dans le dossier /trs correspondant
# Line 428  class utils extends application { Line 460  class utils extends application {
460          }          }
461          return $file_list;          return $file_list;
462      }      }
   
     /*  
      * Store the data recived in the request into a file on the  
      * local filesystem.  
      * @todo This function will need to be changed for the save to  
      * be on GED  
      * @param mixed $data The data received with the request  
      * @param string $id The consultation ID  
      * @return string OK on success, KO otherwise  
      */  
           
     function storeDecisionFile(&$fichier_base64, $basename, $dossier, $prefix = '') {  
           
         if (empty($fichier_base64)) {  
             $this -> addToMessage("error", _("Le fichier est vide"));  
             return false;  
         }  
         $dir = $this->getPathFolderTrs().$dossier;  
           
         // if a file already exists by that name and it  
         // is not a directory, back out  
         /*if (file_exists($dir) AND is_dir($dir)) {  
             $this -> addToMessage("error", _("Le repertoire n'existe pas, le fichier ne peut pas etre enregistre."));  
             return false;  
         }*/  
         // if a dirextory by that name exists, make sure it does  
         // not already contain an avis de consultation, MAYBE WE DON'T NEED THIS  
         if (file_exists($dir) AND is_dir($dir)) {  
             $dir_contents = trim(shell_exec('ls '.$dir));  
             if (strpos($dir_contents, ' ') != false) {  
                 $dir_contents = explode(' ', $dir_contents);  
             } else {  
                 $dir_contents = array($dir_contents);  
             }  
             foreach ($dir_contents as $basefname) { // very useful for consultation  
                 if (strpos($basefname, $prefix)!==false) {  
                     return _("Un retour d'avis existe deja.");  
                       
                 }  
             }  
         } else {  
             $this->createFolder($dossier);  
         }          
           
         // store the file contents into the file named:  
         //      consultation_<ID>_<file_name_received>  
         $file_len = strlen($fichier_base64);  
   
         $filename = $dir."/".$prefix.$basename;  
   
         $file = fopen($filename, 'w');  
         if (!$file) {  
             return _("Echec a la creation du fichier.");  
         }  
         // check that the number of bytes written is equal to the length  
         // of the data received  
         $num_written = fwrite($file, $fichier_base64, $file_len);  
           
         if (!$num_written) {  
             // remove the file  
             // the return value from shell can't be used for checking since  
             // one can not know if the NULL returned is because there was no  
             // output or because there was an error  
             $ret = shell_exec("rm -f $filename 2>&1");  
             //if ($ret == NULL) { // an error occured while deleting the file  
             //}  
             return _("La sauvegarde du fichier a echoue");  
         }  
         fclose($file);  
         return true;  
     }  
463            
464      /**      /**
465       *       *
# Line 516  class utils extends application { Line 477  class utils extends application {
477          die();          die();
478      }      }
479    
480         // }}}
481    
482  }  }
483    
484  ?>  ?>

Legend:
Removed from v.817  
changed lines
  Added in v.1859

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26