/** * 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); } } } } }
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 ''; } }