Esempio n. 1
0
 /**
  * Enlève d'un groupe les couches, sauf celles spécifiées
  * @param string $id_couches Liste des couches à conserver
  * @param int $groupe_id 
  * @param int $profil_id Id du profil propriétaire
  */
 public function enleverCouchesDuGroupe($id_couches, $groupe_id, $profil_id)
 {
     if (!$id_couches) {
         $id_couches = 0;
     }
     $estAdmin = $this->getDi()->getSession()->get("info_utilisateur")->estAdmin;
     if (!$estAdmin) {
         //Récupérer la liste des profils du pilote
         $profils = $this->getDi()->getSession()->get("info_utilisateur")->profils;
         $liste_profil_id_utilisateur = array();
         foreach ($profils as $profil) {
             array_push($liste_profil_id_utilisateur, $profil["id"]);
         }
         $liste_profil_id_utilisateur = implode(",", $liste_profil_id_utilisateur);
     }
     //Récupérer les couches qui sont à enlever du groupe
     $igoGroupeCouches = IgoGroupeCouche::find("groupe_id = {$groupe_id} AND couche_id NOT IN ({$id_couches})");
     foreach ($igoGroupeCouches as $igoGroupeCouche) {
         //L'utilisateur n'est pas un pilote
         if (!$estAdmin) {
             //Vérifier si l'utilisateur à le droit d'enlever la couche du groupe
             $igoVuePermissionsPourCouches = IgoVuePermissionsPourCouches::findFirst("couche_id = {$igoGroupeCouche->couche_id} AND groupe_id = {$groupe_id} AND profil_id IN({$liste_profil_id_utilisateur})");
         }
         //L'utilisateur a le droit d'enlever la couche du groupe
         if ($estAdmin || $igoVuePermissionsPourCouches && $igoVuePermissionsPourCouches->est_association) {
             //Supprimer les associations de cette couche dans les contextes
             $igoCoucheContextes = IgoCoucheContexte::find("groupe_id = {$igoGroupeCouche->id}");
             foreach ($igoCoucheContextes as $igoCoucheContexte) {
                 if (!$igoCoucheContextes->delete()) {
                     foreach ($igoCoucheContextes->getMessages() as $message) {
                         $this->flash->error($message);
                     }
                 }
             }
             if (!$igoGroupeCouche->delete()) {
                 foreach ($igoGroupeCouche->getMessages() as $message) {
                     $this->flash->error($message);
                 }
             }
         }
     }
 }
Esempio n. 2
0
 public function groupeAction($id)
 {
     $filterArray = function ($value) {
         if (is_numeric($value)) {
             return $value;
         }
     };
     $this->definirVariablesCommunes();
     $this->view->setVar("titre", "Navigateur");
     if (isset($this->getDi()->getConfig()->configurations["defaut"])) {
         $xmlPath = $this->getDi()->getConfig()->configurations["defaut"];
     } else {
         $xmlPath = $this->getDi()->getConfig()->configurationsDir . "defaut" . '.xml';
     }
     $filemtime = filemtime($xmlPath);
     $this->view->setVar("configuration", "defaut?v={$filemtime}");
     $arrayGroupeCoucheId = array_filter(explode(",", $id), $filterArray);
     $couches = array();
     foreach ($arrayGroupeCoucheId as $key => $value) {
         $couche = IgoGroupeCouche::find("groupe_id={$value}");
         if (count($couche) == 0) {
             continue;
         }
         foreach ($couche as $value) {
             if (is_numeric($value->couche_id)) {
                 $couches[] = $value->couche_id;
             } else {
                 $this->dispatcher->forward(array("controller" => "error", "action" => "error404"));
                 return;
             }
         }
     }
     if (count($couches) >= 1) {
         $this->view->setVar("couche", implode(',', $couches) . "?v=" . md5(rand(1000, 9999999)));
     } else {
         $this->view->setVar("avertissement", "Aucun groupe n'a été trouvé avec le(s) id(s) suivant :" . implode(";", $arrayGroupeCoucheId));
         $this->view->setVar("couche", "null");
     }
 }
Esempio n. 3
0
 function obtenirGroupeCouche($coucheId)
 {
     $groupes = IgoGroupeCouche::find("couche_id=" . $coucheId);
     // TODO cleanup
     $in = '';
     foreach ($groupes as $value) {
         $in .= $value->groupe_id . ',';
     }
     return substr($in, 0, strlen($in) - 1);
 }