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
 function obtenirPermission($couche_id)
 {
     global $app;
     if (is_null($app->getDI()->getConfig()->database)) {
         return null;
     } else {
         $conditions = "profil_id in (" . obtenirUtilisateurProfilsInQuery() . ") AND (couche_id = ?1)";
         $parameters = array(1 => $couche_id);
         $permission = IgoVuePermissionsPourCouches::findFirst(array($conditions, "bind" => $parameters, "columns" => "couche_id, bool_or(est_lecture) as est_lecture, bool_or(est_ecriture) as est_ecriture, bool_or(est_analyse) as est_analyse, bool_or(est_export) as est_export", "group" => "couche_id"));
         return $permission;
     }
 }