$quoi,'id_objet'=>$id)); } /** * Autorisation a lier un point d'un objet * Un auteur peut lier un point à un autre objet que s'il peut modifier l'objet à lier en question * * @param string $faire L'action * @param string $type Le type d'objet * @param int $id L'identifiant numérique de l'objet * @param array $qui Les informations de session de l'auteur * @param array $opt Des options * @return boolean true/false */ function autoriser_gis_lier_dist($faire, $quoi, $id, $qui, $opts) { if (is_array($opts) and isset($opts['objet']) and isset($opts['id_objet'])) { return autoriser('modifier', $opts['objet'], $opts['id_objet'], $qui); } return false; } /** * Autorisation a délier un point d'un objet * Un auteur peut délier un point d'un autre objet que s'il peut modifier l'objet en question * Si l'objet lié n'existe plus, on vérifie que l'auteur a le droit de modifier le point * * @param string $faire L'action * @param string $type Le type d'objet * @param int $id L'identifiant numérique de l'objet * @param array $qui Les informations de session de l'auteur * @param array $opt Des options * @return boolean true/false */ function autoriser_gis_delier_dist($faire, $quoi, $id, $qui, $opts) { $table = table_objet_sql($opts['objet']); $_id_objet = id_table_objet($table); if (!sql_getfetsel($_id_objet, $table, "$_id_objet=" . intval($opts['id_objet']))) { return autoriser('modifier', 'gis', $id, $qui, $opts); } else { return autoriser('lier', 'gis', $id, $qui, $opts); } } /** * Autorisation a supprimer un point * Un auteur peut supprimer un point s'il peut délier tous les objets et modifier le point * * @param string $faire L'action * @param string $type Le type d'objet * @param int $id L'identifiant numérique de l'objet * @param array $qui Les informations de session de l'auteur * @param array $opt Des options * @return boolean true/false */ function autoriser_gis_supprimer_dist($faire, $quoi, $id, $qui, $opts) { $liaisons = sql_select('*', 'spip_gis_liens', 'id_gis=' . intval($id)); while ($liaison = sql_fetch($liaisons)) { if (!autoriser('delier', 'gis', $liaison['id_gis'], $qui, $liaison)) { return false; } } return autoriser('modifier', 'gis', $id, $qui, $opts); }