示例#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);
                 }
             }
         }
     }
 }
示例#2
0
 public function exclude_items($igo_contexte, $igo_profil)
 {
     $exclude_list = "";
     if ($this->IgoGeometrie->ind_inclusion == "E") {
         foreach ($this->IgoGeometrie->IgoAttribut as $value) {
             if (!$value->est_inclu) {
                 $exclude_list = $exclude_list . ', ' . $value->colonne;
             }
         }
     }
     $igo_couche_contexte = IgoCoucheContexte::find("couche_id=" . $this->id . "and contexte_id=" . $igo_contexte->id . "and est_exclu");
     foreach ($igo_couche_contexte as $value) {
         $exclude_list = $exclude_list . ', ' . $value->IgoAttribut->colonne;
     }
     if ($igo_profil && isset($igo_profil->id)) {
         $igo_permission = IgoPermission::find("couche_id=" . $this->id . "and profil_id=" . $igo_profil->id . "and est_exclu");
         foreach ($igo_permission as $value) {
             $exclude_list = $exclude_list . ', ' . $value->IgoAttribut->colonne;
         }
     }
     if ($exclude_list != "") {
         $exclude_list = substr($exclude_list, 2);
         return '"gml_exclude_items" "' . $exclude_list . '"';
     } else {
         return '';
     }
 }